celeritas-project / celeritas

Celeritas is a new Monte Carlo transport code designed to accelerate scientific discovery in high energy physics by improving detector simulation throughput and energy efficiency using GPUs.
https://celeritas-project.github.io/celeritas/user/index.html
Other
62 stars 33 forks source link

Fix no-JSON and Windows builds #1200

Closed sethrj closed 5 months ago

sethrj commented 5 months ago

This is a follow-on to #1196 . It fixes the new CI builds that were introduced.

MSVC warnings that this fixes

Throwing from a C function with windows:

celeritas\src\corecel\sys\ScopedSignalHandler.cc(29): error C2220: the following warning is treated as an error
celeritas\src\corecel\sys\ScopedSignalHandler.cc(29): warning C4297: '`anonymous-namespace'::celer_set_signal': function assumed not to throw an exception but does
celeritas\src\corecel\sys\ScopedSignalHandler.cc(29): note: The function is extern "C" and /EHc was specified

Using std::fma in an integer template context:

celeritas\src\orange\MatrixUtils.cc(76): error C2220: the following warning is treated as an error
celeritas\src\orange\MatrixUtils.cc(76): warning C4244: '=': conversion from 'double' to 'int', possible loss of data

Missing include:

celeritas\src\orange\orangeinp\detail\PostfixLogicBuilder.cc(215): error C2039: 'sort': is not a member of 'std'

Not propagating compile flags to celer-g4 when Geant4 is disabled:

ostream(779): error C2220: the following warning is treated as an error
ostream(779): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc

Accidental use of real_type instead of size_type:

celeritas\src\celeritas\optical\detail\../OpticalGenData.hh(150): warning C4244: 'argument': conversion from 'const celeritas::real_type' to 'size_t', possible loss of data

Implicit truncation from real_type to size_type:

2024-04-21T11:40:36.2485761Z D:\a\celeritas\celeritas\src\celeritas/optical/ScintillationPreGenerator.hh(120): error C2220: the following warning is treated as an error
2024-04-21T11:40:36.2488477Z D:\a\celeritas\celeritas\src\celeritas/optical/ScintillationPreGenerator.hh(120): warning C4244: '=': conversion from 'T' to 'celeritas::size_type', possible loss of data