Hi Armin,
When I import from the cctbx and perform a division through zero (with array objects from numpy) something segfaults.
During the first import of any cctbx module, some code is run to switch on the trapping of floating point exceptions. Thus after that import, divsion-by-zero, NaN-production and overflows result in a stacktrace indeed, which is usually not the default. You should see a message telling you about one way to suppress that behaviour (after the stacktrace). You can indeed set any of the following environment variable: BOOST_ADAPTBX_FE_OVERFLOW_DEFAULT, BOOST_ADAPTBX_FE_INVALID_DEFAULT, BOOST_ADAPTBX_FE_DIVBYZERO_DEFAULT, BOOST_ADAPTBX_FPE_DEFAULT. They respectively revert to the default behaviour of your platform for respectively overflows, NaN, division by zero and all of those three. There is a programmatic way to suppress trapping too. from boost.python import floating_point_exceptions # Then any combination of the following floating_point_exceptions.division_by_zero_trapped = False floating_point_exceptions.invalid_trapped = False floating_point_exceptions.overflow_trapped = False
I did not observe this behaviour on windows
We have not installed those traps on Windows indeed. Only on Linux and MacOS X. Luc Bourhis Computer Scientist Chemical Crystallography Laboratory University of Durham, UK