No MPL, no variantdata, stepper concepts
This MR gets rid of boost::mpl
:
- Reimplement type generation for
FittableMeasurement
usingboost::hana
. This also effectively switches that type away fromboost::variant
tostd::variant
. - Reimplement action / abort list introspection using
boost::hana
- Drop type erasure for
Grid
andInterpolatedBFieldMap
. The templating now bubbles through to the stepper. Setup becomes little more complicated, but we're not going through TE at all anymore, which should be a performance benefit. Effectively removes any signature requirements on field mappers and the grid, even though they were not enforced even before, since that only happened when using the concepts with TE. - Removes the
VariantData
code. It's unreasonable to pay the performance cost forboost::mpl
there, when we're not actively using it.
This includes @fklimpel's changes from !518 (merged), but reimplements the static assertions on steppers using a custom setup not using boost (see TypeTraits.hpp
and StepperConcept.hpp
). These concepts are only enforced at compile and are not (and cannot be) used for type erasure.
All in all, this decreases build time by about 10% and memory usage by about 9%.
I would propose we close !518 (merged) and merge this MR instead.
EDIT: !528 (merged) dominates compile time over this one, but I still think we'd benefit from this.
Merge request reports
Activity
For job clang_tidy on commit: 7cd112e0
Static analysis results: Accepted
ok pattern count limit readability-inconsistent-declaration-parameter-name
0 0 readability-named-parameter
0 0 readability-container-size-empty
0 0 modernize-use-using
0 0 readability-braces-around-statements
0 0 modernize-use-override
0 0 readability-implicit-bool-cast
0 0 modernize-use-default-member-init
0 0 performance-unnecessary-value-param
0 0 modernize-use-equals-default
0 0 modernize-use-nullptr
0 0 Analysis results at: https://gitlab.cern.ch/api/v4/projects/26103/jobs/3569165/artifacts
- Resolved by Robert Johannes Langenberg
added 2 commits
For job clang_tidy on commit: 48e0e70c
Static analysis results: Accepted
ok pattern count limit readability-inconsistent-declaration-parameter-name
0 0 readability-named-parameter
0 0 readability-container-size-empty
0 0 modernize-use-using
0 0 readability-braces-around-statements
0 0 modernize-use-override
0 0 readability-implicit-bool-cast
0 0 modernize-use-default-member-init
0 0 performance-unnecessary-value-param
0 0 modernize-use-equals-default
0 0 modernize-use-nullptr
0 0 Analysis results at: https://gitlab.cern.ch/api/v4/projects/26103/jobs/3571257/artifacts
For job clang_tidy on commit: f9c60e0e
Static analysis results: Accepted
ok pattern count limit readability-inconsistent-declaration-parameter-name
0 0 readability-named-parameter
0 0 readability-container-size-empty
0 0 modernize-use-using
0 0 readability-braces-around-statements
0 0 modernize-use-override
0 0 readability-implicit-bool-cast
0 0 modernize-use-default-member-init
0 0 performance-unnecessary-value-param
0 0 modernize-use-equals-default
0 0 modernize-use-nullptr
0 0 Analysis results at: https://gitlab.cern.ch/api/v4/projects/26103/jobs/3606127/artifacts
added 48 commits
-
f9c60e0e...8488a510 - 6 commits from branch
acts:master
- 3a2e98a3 - surfaceReached added, last some statics removed
- 92c1428d - Built CRTP interfacing for steppers
- bd761a24 - Assertion and comments added
- 18db0573 - Reordering of functions for consistency; added missing functions to straightLineStepper
- 3be3bd4f - Asserting steppers except correctors
- e6c29d93 - Fixed AtlasStepper interface
- c9821f83 - Format fixed
- 37c4ac5c - Removed StepperBase
- 14b926e6 - Fixed ordering in AtlasStepper
- db2df677 - Format fixed
- e0b93065 - Removed deprecated asserts
- c148875e - attempt to replace boost tti with detector idiom
- f184772b - fix detector idiom usage for phi function
- 2632bc2e - fix detector again
- 1e4e4a79 - Change fittable measurement creation
- 83cc5071 - Begin removal of AnyFieldLookup
- d9bcb3d9 - format
- e00a3d5f - Remove AnyGrid
- 6c2b0515 - include variant
- 5b6f1d0c - Removing variant data
- bac07ff5 - Add one more test for fittable meas creation
- 9b62a381 - Fix rebase artifact
- 21d29d9e - Move definitions of EigenStepper to ipp file
- a614892f - Split up declaration and definition in Propagator
- f0909bde - Play around with extern template
- 589568b1 - Format
- 4c5fd061 - tests/doc for type traits
- c8bf67a0 - Add some documentation on detection idom
- e96bdc1f - refine doc
- 5af58156 - Improve type trait doc
- f2f2e49f - Add comment to track state sorters
- fbfd74b7 - Move return value for prop into new style
- bc3c7805 - Add separate Propagator.ipp
- 23c32ede - move concept helpers into namespace
- 2a669e93 - Remove external template tests
- 4768ae80 - Move concepts into Acts namespace
- 3a5ee9a6 - Fixes after rebase
- c50e0c72 - Replace Boost TTI with custom detection in prop
- bf5e6541 - Use type traits in helpers phi method detetcion
- 6855d4d2 - Add doc comments, a bit of cleanup
- 82648412 - Remove state meta functions
- 2adc534a - Add corrector type to concept
Toggle commit list-
f9c60e0e...8488a510 - 6 commits from branch
- Resolved by Robert Johannes Langenberg
- Resolved by Robert Johannes Langenberg