Add fmtlib support to EventContext
All threads resolved!
All threads resolved!
- make
EventContext
formattable via fmtlib - implement
operator<<(ostream&, ...)
in terms offmt::format
- add a test to ensure that
EventContext
formatting and printing is stable
Closes #311 (closed)
Merge request reports
Activity
Filter activity
changed milestone to %v38r3
added lhcb-gaudi-head label
- [2024-06-07 00:03] Validation started with lhcb-gaudi-head#3929
- [2024-06-07 00:18] Validation started with lhcb-run2-gaudi-head#776
- [2024-06-08 10:41] Validation started with lhcb-gaudi-head#3930
- [2024-06-09 00:03] Validation started with lhcb-gaudi-head#3931
- [2024-06-11 00:03] Validation started with lhcb-gaudi-head#3932
- [2024-06-11 00:11] Validation started with lhcb-run2-gaudi-head#777
- [2024-07-26 12:57] Validation started with lhcb-gaudi-head#3966
- [2024-07-26 15:35] Validation started with lhcb-gaudi-head#3967
- [2024-07-27 00:03] Validation started with lhcb-gaudi-head#3968
- [2024-07-27 00:15] Validation started with lhcb-run2-gaudi-head#801
- [2024-07-28 00:03] Validation started with lhcb-gaudi-head#3969
- [2024-07-28 00:07] Validation started with lhcb-run2-gaudi-head#802
Edited by Software for LHCb- Resolved by Marco Clemencic
This seems to break compilation with nvcc:
/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include/GaudiKernel/EventContext.h: In member function 'auto fmt::v10::formatter<EventContext>::format(const EventContext&, fmt::v10::format_context&) const': /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include/GaudiKernel/EventContext.h:151:20: error: 'consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) [with S = char [21]; typename std::enable_if<std::is_convertible<const S&, fmt::v10::basic_string_view<Char> >::value, int>::type <anonymous> = 0; Char = char; Args = {long unsigned int, long unsigned int, long unsigned int}]' called in a constant expression 151 | out = fmt::format( "s: {} e: {} sub: {}", ec.slot(), ec.evt(), ec.subSlot() ); | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /cvmfs/sft.cern.ch/lcg/releases/fmt/10.0.0-f6609/x86_64-el9-gcc13-opt/include/fmt/core.h:2758:40: note: 'consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) [with S = char [21]; typename std::enable_if<std::is_convertible<const S&, fmt::v10::basic_string_view<Char> >::value, int>::type <anonymous> = 0; Char = char; Args = {long unsigned int, long unsigned int, long unsigned int}]' is not usable as a 'constexpr' function because: 2758 | FMT_CONSTEVAL FMT_INLINE basic_format_string(const S& s) : str_(s) { | ^~~~~~~~~~~~~~~~~~~ /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include/GaudiKernel/EventContext.h:153:20: error: 'consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) [with S = char [13]; typename std::enable_if<std::is_convertible<const S&, fmt::v10::basic_string_view<Char> >::value, int>::type <anonymous> = 0; Char = char; Args = {long unsigned int, long unsigned int}]' called in a constant expression 153 | out = fmt::format( "s: {} e: {}", ec.slot(), ec.evt() ); | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /cvmfs/sft.cern.ch/lcg/releases/fmt/10.0.0-f6609/x86_64-el9-gcc13-opt/include/fmt/core.h:2758:40: note: 'consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) [with S = char [13]; typename std::enable_if<std::is_convertible<const S&, fmt::v10::basic_string_view<Char> >::value, int>::type <anonymous> = 0; Char = char; Args = {long unsigned int, long unsigned int}]' is not usable as a 'constexpr' function because: 2758 | FMT_CONSTEVAL FMT_INLINE basic_format_string(const S& s) : str_(s) { | ^~~~~~~~~~~~~~~~~~~ /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include/GaudiKernel/EventContext.h: In function 'std::ostream& operator<<(std::ostream&, const EventContext&)': /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include/GaudiKernel/EventContext.h:162:104: error: 'consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) [with S = char [3]; typename std::enable_if<std::is_convertible<const S&, fmt::v10::basic_string_view<Char> >::value, int>::type <anonymous> = 0; Char = char; Args = {const EventContext&}]' called in a constant expression 162 | inline std::ostream& operator<<( std::ostream& os, const EventContext& ctx ) { return os << fmt::format( "{}", ctx ); } | ~~~~~~~~~~~^~~~~~~~~~~ /cvmfs/sft.cern.ch/lcg/releases/fmt/10.0.0-f6609/x86_64-el9-gcc13-opt/include/fmt/core.h:2758:40: note: 'consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) [with S = char [3]; typename std::enable_if<std::is_convertible<const S&, fmt::v10::basic_string_view<Char> >::value, int>::type <anonymous> = 0; Char = char; Args = {const EventContext&}]' is not usable as a 'constexpr' function because: 2758 | FMT_CONSTEVAL FMT_INLINE basic_format_string(const S& s) : str_(s) { | ^~~~~~~~~~~~~~~~~~~ /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include/GaudiKernel/EventContext.h: In function 'std::ostream& operator<<(std::ostream&, const EventContext*)': /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include/GaudiKernel/EventContext.h:165:36: error: 'consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) [with S = char [3]; typename std::enable_if<std::is_convertible<const S&, fmt::v10::basic_string_view<Char> >::value, int>::type <anonymous> = 0; Char = char; Args = {const EventContext&}]' called in a constant expression 165 | if ( c ) { return os << fmt::format( "{}", *c ); } | ~~~~~~~~~~~^~~~~~~~~~ error: Failed to execute /cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/cuda/12.4/x86_64-el9-gcc13-opt/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/bin/g++ -DATLAS_PACKAGE_NAME="AthExCUDA" -DAthExCUDA_EXPORTS -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_REGEX_DYN_LINK -DBOOST_REGEX_NO_LIB -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB -DCLHEP_ABS_DEFINED -DCLHEP_MAX_MIN_DEFINED -DCLHEP_SQR_DEFINED -DEIGEN_DONT_VECTORIZE -DEIGEN_NO_CUDA -DFMT_SHARED -DGAUDI_V20_COMPAT -DJSON_DIAGNOSTICS=0 -DJSON_USE_IMPLICIT_CONVERSIONS=1 -DVECMEM_DEBUG_MSG_LVL=0 -DVECMEM_HAVE_PMR_MEMORY_RESOURCE -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthenaExamples/AthExCUDA -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthenaBaseComps -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthenaKernel -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/CxxUtils -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/DataModelRoot -I/cvmfs/sft.cern.ch/lcg/releases/Boost/1.82.0-fbfc9/x86_64-el9-gcc13-opt/include -I/cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/fmt/10.0.0/x86_64-el9-gcc13-opt/include -I/cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/jsonmcpp/3.10.5/x86_64-el9-gcc13-opt/include -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Event/xAOD/xAODEventInfo -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthContainers -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthContainersInterfaces -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthLinks -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/SGTools -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthAllocators -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Event/xAOD/xAODCore -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/RootUtils -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/StoreGate -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Database/PersistentDataModel -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Event/xAOD/xAODTracking -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/DetectorDescription/GeoPrimitives -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Event/EventPrimitives -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Event/xAOD/xAODBase -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Event/xAOD/xAODMeasurementBase -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkNeutralParameters -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkDetDescr/TrkSurfaces -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/DetectorDescription/Identifier -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkParametersBase -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkEventPrimitives -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkDetDescr/TrkDetDescrUtils -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkDetDescr/TrkDetElementBase -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkParameters -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkTrack -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkMaterialOnTrack -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkMeasurementBase -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkTrackLink -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/TrkTrackSummary -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Tracking/TrkEvent/VxVertex -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthCUDA/AthCUDAInterfaces -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthCUDA/AthCUDAKernel -I/build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthCUDA/AthCUDACore -isystem /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/include -isystem /cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/Boost/1.82.0/x86_64-el9-gcc13-opt/include -isystem /cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/ROOT/6.28.12/x86_64-el9-gcc13-opt/include -isystem /cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/tbb/2020_U2/x86_64-el9-gcc13-opt/include -isystem /cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/cppgsl/3.1.0/x86_64-el9-gcc13-opt/include -isystem /cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/rangev3/0.11.0/x86_64-el9-gcc13-opt/include -isystem /cvmfs/atlas.cern.ch/repo/sw/tdaq/tdaq-common/tdaq-common-11-02-01/installed/external/x86_64-el9-gcc13-opt/include -isystem /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/build/install/AthenaExternals/25.0.9/InstallArea/x86_64-el9-gcc13-opt/lib/CLHEP-2.4.1.3/../../include -isystem /cvmfs/sft.cern.ch/lcg/releases/LCG_104d_ATLAS_17/eigen/3.4.0/x86_64-el9-gcc13-opt/include/eigen3 -O2 -g -DNDEBUG -std=c++20 --generate-code=arch=compute_52,code=[compute_52,sm_52] -Xcompiler=-fPIC -Xcudafe --diag_suppress=177 -MD -MT Control/AthenaExamples/AthExCUDA/CMakeFiles/AthExCUDA.dir/src/TrackParticleCalibratorExampleAlg.cu.o -MF Control/AthenaExamples/AthExCUDA/CMakeFiles/AthExCUDA.dir/src/TrackParticleCalibratorExampleAlg.cu.o.d -x cu -c /build/atnight/localbuilds/nightlies/Athena/main--mainGAUDI-OMR/athena/Control/AthenaExamples/AthExCUDA/src/TrackParticleCalibratorExampleAlg.cu -o Control/AthenaExamples/AthExCUDA/CMakeFiles/AthExCUDA.dir/src/TrackParticleCalibratorExampleAlg.cu.o (return code: 1)
Edited by Frank Winklmeier
changed milestone to %v39r0
removed lhcb-gaudi-head label
- Resolved by Frank Winklmeier
@fwinkl, can we put this MR back in?
added lhcb-gaudi-head label
mentioned in commit 1089d18f
Please register or sign in to reply