LHCb merge requestshttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests2021-09-07T11:34:26+02:00https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/1567prefer std::string_view over boost::string_ref2021-09-07T11:34:26+02:00Gerhard Ravenprefer std::string_view over boost::string_refhttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2142Small CMake improvements2019-12-19T18:25:04+01:00Marco Clemencicmarco.clemencic@cern.chSmall CMake improvements- Remove obsolete subdir version numbers
- Small fixes in preparation to gaudi/Gaudi!922
- Clean/speed up LHCbMath configuration- Remove obsolete subdir version numbers
- Small fixes in preparation to gaudi/Gaudi!922
- Clean/speed up LHCbMath configurationhttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2189Phys/LoKiCore: Run clang-tidy2019-12-09T11:15:23+01:00Gerhard RavenPhys/LoKiCore: Run clang-tidyRun `clang-tidy -checks=modernize-*,cppcoreguidelines-*,clang-analyzer-*,bugprone-*`
The only manual tweaks were to 'undo' the amalgamation of nested namespace names back to separate `namespace` statements as in the original codeRun `clang-tidy -checks=modernize-*,cppcoreguidelines-*,clang-analyzer-*,bugprone-*`
The only manual tweaks were to 'undo' the amalgamation of nested namespace names back to separate `namespace` statements as in the original codehttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2225Modernize DetDesc2019-12-12T15:37:13+01:00Gerhard RavenModernize DetDesc* replace run-time execption with compile-time static_assert
- and fix the UT code that would trigger the exception
* use GaudiUtils::ostream_joiner directly instead of a local copy
of the code
* prefer std::string_view in interface...* replace run-time execption with compile-time static_assert
- and fix the UT code that would trigger the exception
* use GaudiUtils::ostream_joiner directly instead of a local copy
of the code
* prefer std::string_view in interfaces
* prefer pass-by-value-followed-by-std::move over pass by const
reference + copy
* remove pragmas for Intel compilerhttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2227Limited use of vectorclass to required places in MagneticFieldGrid2020-05-18T15:17:09+02:00Sebastien PonceLimited use of vectorclass to required places in MagneticFieldGridIn details :
- dropped vectorclass from the members used for storage. Used std::array there. This gives exactly same storage and perf (strictly same assembly code) and allows to write a scalar version easily
- dropped vectorclass fro...In details :
- dropped vectorclass from the members used for storage. Used std::array there. This gives exactly same storage and perf (strictly same assembly code) and allows to write a scalar version easily
- dropped vectorclass from fieldVectorClosestPoint and fieldGradient functions. Reverted to a scalar code, as it's much faster (15 vs 10.3 and 27 vs 19.8 cycles per call respectively)
- adapted fieldVector code to use new storage. Resulting assembly code is unchanged. Note that here, vectorized version is much faster than scalar one as more computation is involved : 25.7 vs 34.2 cycles per callhttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2260Minimize new refs produced by validateWithRef2021-01-29T22:43:13+01:00Rosen MatevMinimize new refs produced by validateWithRef- For tests using `validateWithRef`, only the preprocessed stdout
is written out on failure. Standard preprocessors would filter out
the summary tables, which is why the counter tables, TTree and histogram
summaries are extracte...- For tests using `validateWithRef`, only the preprocessed stdout
is written out on failure. Standard preprocessors would filter out
the summary tables, which is why the counter tables, TTree and histogram
summaries are extracted and written out at the end.
In this way irrelevant lines would not be part of the ref files,
thereby reducing diffs and conflicts.
- Fix a bug in the counter extraction where any component (tool) with
a dot in the name would not be considered in the comparison.
- Catch exceptions in the validators and put the traceback in a `validator_exception` field.
- Expose the counter parsing with a standalone `extract_counters`.
- Add a preprocessor `GroupMessages` that groups multi-line messages.
- Add a preprocessor `BlockSkipper` that improves upon the `BlockSkipper`
from Gaudi (can be moved there).
goes together with Moore!339https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2263Add 'expected' OMP stderr messages to test exclusions2020-02-04T17:48:52+01:00Christopher Rob Jonesjonesc@hep.phy.cam.ac.ukAdd 'expected' OMP stderr messages to test exclusionsRunning clang builds generates stderr messages like
```
OMP: Warning #96: Cannot form a team with 64 threads, using 1 instead.
OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_T...Running clang builds generates stderr messages like
```
OMP: Warning #96: Cannot form a team with 64 threads, using 1 instead.
OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set).
```
These are due to the fact we use `OMP_THREAD_LIMIT=1` to limit OMP to one thread, and are unavoidable (no way to suppress them).
This MR adds them to the exclusion line skipper in LHCbExclusions.pyhttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2289Modernize SimComponents2020-03-17T09:05:49+01:00Gerhard RavenModernize SimComponents* use Gaudi::Functional
* use Gaudi::Accumulators
* use DataObjectHandle
* prefer ToolHandle
* prefer Gaudi::Algorithm
* amalgamate headers into implementation files
* use monadic StatusCode functionality
Reference update: Brune...* use Gaudi::Functional
* use Gaudi::Accumulators
* use DataObjectHandle
* prefer ToolHandle
* prefer Gaudi::Algorithm
* amalgamate headers into implementation files
* use monadic StatusCode functionality
Reference update: Brunel!943
Goes together with Rec!1858 Brunel!943 Moore!354https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2291Modernize MuonDAQ2020-01-20T12:25:54+01:00Gerhard RavenModernize MuonDAQ* prefer DataObjectReadHandle
* prefer STL algorihms
* prefer range-based for loops
* amalgamate header into component source* prefer DataObjectReadHandle
* prefer STL algorihms
* prefer range-based for loops
* amalgamate header into component sourcehttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2292Exclude histogram headers in LHCb ref preprocessor2021-01-12T17:40:11+01:00Rosen MatevExclude histogram headers in LHCb ref preprocessorWith LHCb!2260 counter and histogram summary tables are appended
explicitly to preprocessed references to create new refs.
Histogram header lines were not filtered by the preprocessor,
which leads to them appearing twice in the new refs,...With LHCb!2260 counter and histogram summary tables are appended
explicitly to preprocessed references to create new refs.
Histogram header lines were not filtered by the preprocessor,
which leads to them appearing twice in the new refs, which in
turn makes the new refs invalid.
This MR fixes that by extending the list of exclusions.https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2293Modernize LoKi2021-01-29T23:27:53+01:00Gerhard RavenModernize LoKi* prefer Gaudi::Functional
* prefer DataObjectReadHandle
* prefer Gaudi::Property
* prefer monadic StatusCode functions* prefer Gaudi::Functional
* prefer DataObjectReadHandle
* prefer Gaudi::Property
* prefer monadic StatusCode functionshttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2295Modernize LHCbAlgs2020-04-14T12:33:08+02:00Gerhard RavenModernize LHCbAlgs* prefer Gaudi::Functional
* prefer DataObject{Read,Write}Handle
* prefer Gaudi::Property
* prefer STL algorithms
* amalgamate component headers into compoment source file
* prefer monadic StatusCode functions
* remove reduncant de...* prefer Gaudi::Functional
* prefer DataObject{Read,Write}Handle
* prefer Gaudi::Property
* prefer STL algorithms
* amalgamate component headers into compoment source file
* prefer monadic StatusCode functions
* remove reduncant destructor declarations
~~New references in Brunel!953.~~
Depends on lhcb/Brunel!982https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2296Modernize RecreatePIDTools2020-01-20T12:25:55+01:00Gerhard RavenModernize RecreatePIDTools* prefer DataObjectReadHandle
* remove redundant destructor declarations* prefer DataObjectReadHandle
* remove redundant destructor declarationshttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2297Modernize EventPacker/Compare*2020-02-12T11:19:11+01:00Gerhard RavenModernize EventPacker/Compare** prefer Gaudi::Functional
* prefer std::array over std::vector* prefer Gaudi::Functional
* prefer std::array over std::vectorhttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2299Modernize VeloDAQ2020-03-30T15:52:14+02:00Gerhard RavenModernize VeloDAQ* prefer DataObject{Read,Write,}Handle
* prefer Gaudi::Property
* prefer inherited constructors
* do not cache msgLevel* prefer DataObject{Read,Write,}Handle
* prefer Gaudi::Property
* prefer inherited constructors
* do not cache msgLevelhttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2300Modernize MCEvent2020-01-20T12:25:55+01:00Gerhard RavenModernize MCEvent* add initializers to member declarations and make default constructors = default
* add [[nodiscard]] where appropriate
* add some const
* have setters take their argument by value, and then std::move to the destination
* have setter...* add initializers to member declarations and make default constructors = default
* add [[nodiscard]] where appropriate
* add some const
* have setters take their argument by value, and then std::move to the destination
* have setters return *this (instead of void) to allow daisy-chaining
* remove redundant protected declarations
* remove redundant inline declarations
* remove redundant destructors
* prefer STL algorithms over raw loops
* prefer range-based for loops
* prefer auto instead of ...::iterator
* remove pragmas specific to Intel compiler
* prefer using over typedef
* remove x bit from header files
must be applied in conjunction with lhcb/Lbcom!414 and lhcb/Boole!254https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2301Modernize GenEvent2020-05-17T12:56:05+02:00Gerhard RavenModernize GenEvent* add initializers to member declarations and make default constructors = default
* add [[nodiscard]] where appropriate
* remove redundant protected declarations
* remove redundant inline declarations
* remove redundant destructors
...* add initializers to member declarations and make default constructors = default
* add [[nodiscard]] where appropriate
* remove redundant protected declarations
* remove redundant inline declarations
* remove redundant destructors
* prefer STL algorithms
* prefer auto instead of ...::iterator
* remove pragmas specific to Intel compiler
* prefer using over typedef
* remove DataObject inheritance from CrossSectionFSR (which is a class that does not contain any state...)https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2303Modernize DAQUtils2020-03-30T15:52:14+02:00Gerhard RavenModernize DAQUtils* prefer Gaudi::Property
* drop redundant destructors
* amalgamate component headers into their source files
* prefer Gaudi::Functional
* prefer STL algorithms
* prefer range-based for loops
Goes together with lhcb/Rec!1869 and B...* prefer Gaudi::Property
* drop redundant destructors
* amalgamate component headers into their source files
* prefer Gaudi::Functional
* prefer STL algorithms
* prefer range-based for loops
Goes together with lhcb/Rec!1869 and Brunel!983https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2304masked compilation warnings coming from VectorClass for avx5122020-01-08T17:32:42+01:00Sebastien Poncemasked compilation warnings coming from VectorClass for avx512and dropped dependency of OT code on vectorclassand dropped dependency of OT code on vectorclasshttps://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2308Always write out new ref if different from old2020-02-04T17:48:03+01:00Rosen MatevAlways write out new ref if different from oldPreviously a new ref was only written if the validation failed. Now it is always written if different.
In addition, add a check whether the preprocessor is idempotent (might lead to failures in downstream projects if dedicated problemat...Previously a new ref was only written if the validation failed. Now it is always written if different.
In addition, add a check whether the preprocessor is idempotent (might lead to failures in downstream projects if dedicated problematic preprocessors are used).
Also, add workaround for gaudi/Gaudi#108 which is a follow up from !2260 (the bug got manifested in the `brunel-upgrade-paramKalman-auxiliaries` test)