art series 2.11¶
New art suite package¶
The hep_concurrency package is now a UPS dependency, brought in by doing a UPS setup of art. The hep_concurrency package provides multi-threading utilities for concurrent processing of events in the art framework. Although concurrent processing of events is not supported by this version of art, the utilities provided by hep_concurrency are used in this suite, and they will be used extensively in art 3.00.00.
messagefacility configuration has been simplified for enabling debug messages. For more details, see the breaking changes.
Bash completions for art-provided executables¶
For users with Bash environments, setting up art via UPS will automatically enable bash completions for most of the art-provided executables. Providing this facility makes the specification of command-line options less cumbersome. In addition, anyone using cetbuildtools will be able to automatically generate bash completions for their own executables suing the
cet_make_completions CMake function. The completions are basic--only a few of the command-line program options have more sophisticated completions usage:
art --print-description E<TAB> # completes to any plugins that begin with 'E' art --print-available <TAB> # shows the allowed values for the argument to '--print-available'
--nthreads program option¶
In anticipation of art 3.00.00, we have provided the
--nthreads program option. When used, this program option initializes the TBB scheduler with the number of threads equal to the value you provide. Note that if you do not use any TBB algorithms in your code, multiple threads will not be created. If
--nthreads is not specified, the TBB scheduler is initialized with 1 thread. The FHiCL parameter
services.scheduler.num_threads is now inserted into all art configurations.
Configuration validation/description for
Configuration description and validation is now available for classes that inherit from
art::ResultsProducer. Please see the documentation for information.
In addition to the features described above, other enhancements have been added, including:
- Safer access when dereferencing
art::Ptr<T>s (resolves issue #18849)
- A facility to retrieve an
art::ProductID(resolves issue #18979)
- The ability to write to
RootOutput(resolves issue #19009)
e17 qualifier is available, which uses GCC 7.3 with the C++17 standard enabled. Although the underlying art infrastructure does not yet use any C++17 features, it has been compiled with the
-std=c++17 compiler flag, and users are able to use any C++17 features supported by GCC 7.3.
Please consult the list of breaking changes to determine if/how your code should be modified.