Closed wdconinc closed 12 months ago
This looks a bit odd to me: https://github.com/JeffersonLab/JANA2/blob/22a0323f66efec616e000264a64e76b027eff291/src/libraries/JANA/Utils/JResourcePool.h#L127-L134 It can't be that spreading every possible variable to a different cache line will always improve performance.
The definition of
alignas
in https://github.com/JeffersonLab/JANA2/blob/master/src/libraries/JANA/Utils/JResourcePool.h#L43-L46 prevents the use ofboost/container/small_vector.hpp
as part of Acts in EICrecon. A workaround has been to loadboost/container/small_vector.hpp
before any JANA2 headers (e.g. indirectly in Navigator.hpp at https://github.com/eic/EICrecon/blob/main/src/global/tracking/tracking.cc#L6), but this is not tenable.Reproducer: remove that Navigator.hpp include, and the following error appears upon compilation with clang:
Possible solution: maybe clang has by now progressed to having a suitable
alignas
that this can be imposed as a requirements (__cxx_align
).