![]() |
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:
IAsyncEventProcessor
experimental interface introduced in v32r0 (!878) has been replaced with IQueueingEventProcessor
(!966)DataHandle
sIAsyncEventProcessor
with IQueueingEventProcessor
(!966)instructionsetLevel
: Add additional AVX512 levels (!954)-mprefer-vector-width=256
(!965)DataHandle
s (!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 DataHandle
s 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.