![]() |
The Gaudi Framework
v32r2 (46d42edc)
|
All notable changes to this project will be documented in this file.
Project Coordinators: Marco Clemencic @clemenci, Charles Leggett @leggett, Stefan Roiser @roiser
The format is based on Keep a Changelog.
This is mostly a bugfix release, but there are nonetheless a couple of important changes:
IAsyncEventProcessorexperimental interface introduced in v32r0 (!878) has been replaced with IQueueingEventProcessor (!966)DataHandlesIAsyncEventProcessor with IQueueingEventProcessor (!966)instructionsetLevel: Add additional AVX512 levels (!954)-mprefer-vector-width=256 (!965)DataHandles (!951)IAlgorithm for GaudiPython (#75, !977)GaudiMP (#87, #75, !973)-Wpotentially-evaluated-expression warning (!970)ContainedObject assignment consistent with copy construction (!967)THistSvc::io_reinit: Handle case of empty new filename (!959)EventSelector - Always set context ptr to null on release (!961)ChronoStatSvc - Clear maps in finalize (!958)Gaudi::Functional implementation (!952)THistSvc: Fix crash in MP if root file already exists (!949)Bugfix release, with some backward compatible changes, mostly meant to pick up LCG 96 and ROOT 6.18/00.
Note: Because of the updated version of Boost in LCG 96, you should use a recent version of CMake (>= 3.14).
HiveDataBroker (!923)Configurable.getGaudiType a classmethod (!929)xyz_v<T> over xyz<T>::value, and xyz_t<T> over typename xyz<T>::type (!925)std::{variant,optional} over boost::{variant,optional} (!926)JOB_POOL for genreflex custom commands (!933)MergingTransformer algorithm (!934)GaudiKernel/Kernel.h (!931)MsgCounter (!921)MergingMultiTransformer (!901).cpp files (!945)AlgContext guard constructor without EventContext for single thread (!973, #72, #73)clang-8 (!941)clang-format command found can be executed (!935)CMake modules test on special architectures (!927)gaudimain.runSerialOld (!918)GaudiKernel linkage to Counters unit test (!920)distcc/icecc support (!911)LibLZMA dependency in GaudiKernel optional (!909)GaudiKernel: check likely macros before defining them (!912)IOpaqueAddress lifetime in EvtStoreSvc (!914)This release features many fixes and improvements, but also a few backward incompatible changes:
GaudiGSL package (in preparation for the licensing under Apache 2) (!879)IEventProcessor interface (!877)HLTEventLoopMgr (!876), AlgErrorAuditor (!874)gaudirun.py (!878)Among the various additions you can find:
Counter-based timers (!787)Gaudi::Interfaces::IAsyncEventProcessor) to allow decoupling of the main thread from the event processing thread(s) (!878)Gaudi::Application) (!878)clang-format to 8 (!872)GaudiCommon (!904)EventContext in IEventProcessor (!877)EventLoopMgr implementations (!876)GaudiGSL (!879)HiveDataBroker: throw exception in case of same output locations in two different algorithms (!858)AlgErrorAuditor (!874)PrecedenceSvc: demote 'Verifying rules' message to debug (!873)boost::string_ref with std::string_view (!859)EventProcessor for asynchronous processing (!878)ConditionAccessorHolder implementation for integration in Functional (!838)Gaudi::Functional to support LHCb-style conditions handles (!899)EvtStoreSvc (!882)Gaudi::Algorithm as base class of Functional algorithms (!897)getIfExits for DataHandles with AnyDataWrapper (!854)std::chrono::duration in counters (!849)Gaudi::Functional (!903)HiveDataBroker: Improve error message when unknown requested input (!906)EventContext in Gaudi::Utils::AlgContext (!902)task_scheduler_init and global_control (!895)StatusCodeSvc thread-safe (!885)ThreadPoolSvc: prefer std::unique_ptr (!889)std::iterator_traits<vector_of_const_<T>::iterator> (!855)MessageSvc::reinitialize (!871)EventIDRange (!860)ApplicationMgr: Call all state transition for MessageSvc and JobOptionsSvc (!866)[[fallthrough]] attribute instead of the fallthrough comment (!862)HiveDataBroker debug printout (!868)This is a bugfix release only to fix a warning with the most recent version of CMake (3.13), see the changes on Gitlab.
The main reason for this major release is to the change of the Algorithm base class with a re-entrant execute method (#47, !703). For backward compatibility the base class for algorithms is Gaudi::Algorithm, while the name Algorithm in the top level namespace is used for a backward compatible implementation. This change also required a backward incompatible change in the IAlgorithm interface, so some code may require adaptation.
We also took the occasion to update the version of clang-format we use from 3.9 to 7, and to switch Python formatting from autopep8 to yapf (!788). Because of the differences (fixes and new features) in the versions of clang-format, we also updated the style rules.
As of this version, Gaudi requires C++17 compatible compiler. C++14 compatibility is not required in merge requests, nor guaranteed on the master branch.
On top of that, we have the usual collection of minor fixes and improvements.
DataObjectHandle::{put,getOrCreate} const (!833)CPUCrunchSvc (!840)MsgStream support for counters (!826)Consumer<void()> (!797)nosetests for LCG 95 (!842)gaudi_add_compile_test also work for succeeding compilations (!844)StatusCode constants (!841)EventContext in Gaudi::Functional::Transformer arguments (!837)Extensions to allow EventIDRanges limited by both time-stamps and run/LB pairs (!831)This release is mainly to revert !462 (Reimplemenation of DataHandle), which caused problems in ATLAS code.
Supersedes v30r4
GaudiKernel/StdArrayAsProperty.h (!790)boost::callable_traits over hand-rolled solution (!785)HiveDataBroker in debug mode (!801)AlgorithmManager are correctly initialized and started (!804)test_LBCORE_716: Use the default linker and not the system linker (!783)CountersUnitTest: Fix C++14 compiler warning (!795)Improvements, modernization and fixes.
Algorithm (!784)DataHandle (!462)EventContext (!770)IDataProviderSvc and IDataManagerSvc interfaces (!674)unique_ptr for EventContexts (!732, #37)ConcurrencyFlags: move setting from AvalancheScheduler to HiveWhiteBoard (!726)IDataStoreAgent implementation (!661)MetaDataSvc: save data for all clients of the JobOptionsSvc (!720)Gaudi::Property constructors which accept an update handler (!769)IDataBroker interface, and HiveDataBroker implementation (!685, !739)HiveWhiteBoard::freeStore: check whether slot was already free (!779, #49)EventViews (!781)BinomialCounter when using buffer (!764)operator() signature in MultiScalarTransform (!755)TimelineSvc (!750)DataObjectHandleBase to str properties (!773)make apply-formatting (!747, )counters.h (!760)EventContext pointer (!727)qmt parsing errors (!714)THistSvc: fix memory corruption in deReg(string) (!728)PluginService (!733)vector_of_const_::operator[] and ::at (!710)VectorMap nothrow_move_constructible (!791)Algorithm (!767)std::forward with std::move in PluginService (!745)Improvements, modernization and fixes.
DeclareFactoryEntries.h (!648)PrecedenceRulesGraph (!684)HLTEventLoopMgr (!686)PluginService in modern C++ (!709)NTUPLEINFO (!688)IRegsitry modification from !604 (!704)AlgsExecutionStates matching (!687)FileMgr: replace integer with bitset (!667)DataHandle::commit() (!625)AlgsExecutionStates::State (!643)apply in Gaudi::Functional (!622)ninja from LCG (!695)GaudiMP (!694)CommonAuditor: only print CustomEventType deprecation warning if the property is used (!691)GIT_DIR/GIT_WORK_TREE before cloning xenv (!669)EventContext as input to Gaudi::Functional algorithms (!671)operator() to Property (!679)KeyedContainer and vector to GaudiExamples (!673)Property forwarding functions (!683)GaudiPython (!680)RootCnv (!660)RootHistCnv (!659)Bugfix release
Bugfix release.
Details about old versions of the project can be found in the [ReleaseNotes](ReleaseNotes) folder and in the release.notes files in GaudiRelease/doc.