ecl/src/h
Marius Gerbershagen cb03494a6d ieee_fp: use explicit checks for fpe bits if feenableexcept is not declared
Using isnan and isfinite to check for floating point exceptions
doesn't work when we want floats to be able to have infinity or NaN as
values, thus this option was removed with commit
5f71f728a3. However, we can still use
fetestexcept to explicitly check if floating point exceptions occurred
even when we can't use the feenableexcept/SIGFPE signal delivery
mechanism.

Previously, we had something like this in the
ECL_MATHERR_TEST/ECL_MATHERR_CLEAR macros, but this was not used
consistently in our codebase (the ECL_MATHERR_TEST macro was missing
in many places). Instead of error-prone testing at every point of
computation, we call fetestexcept in DO_DETECT_FPE when creating a new
float/complex float. In order to avoid having to do this twice, the
DO_DETECT_FPE2 macro is introduced.

A minor disadvantage of this strategy is that floating point
exceptions may be signaled later than they occurred.
2020-01-11 15:32:52 +01:00
..
impl ieee_fp: use explicit checks for fpe bits if feenableexcept is not declared 2020-01-11 15:32:52 +01:00
bytecodes.h Remove deprecated 8-bit opcodes 2018-04-29 13:54:38 +02:00
cache.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
config-internal.h.in Change handling of C stack size 2019-12-26 19:13:31 +01:00
config.h.in ieee-fp: introduce new macro for toggling between Lisp and C fpe 2019-06-30 13:01:06 +02:00
cons.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
cs.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
ecl-cmp.h cmp: remove unused interface *linking-calls* 2019-07-19 14:30:53 +02:00
ecl-inl.h long-float: remove conditionalization 2019-05-24 21:04:59 +00:00
ecl.h ieee-fp: introduce new macro for toggling between Lisp and C fpe 2019-06-30 13:01:06 +02:00
ecl_atomics.h fix header argument names for C++ compilation 2018-11-02 17:31:55 +08:00
external.h stacks.d: fix several problems with C stack 2019-12-08 10:26:52 +01:00
internal.h ffi: generate abi list from available libffi abis 2019-12-09 19:49:30 +01:00
legacy.h fix for calling conventions treating fixed and variadic arguments differently 2019-12-08 10:26:52 +01:00
number.h long-float: remove conditionalization 2019-05-24 21:04:59 +00:00
object.h ffi: generate abi list from available libffi abis 2019-12-09 19:49:30 +01:00
page.h The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
stack-resize.h fix build failures with --disable-threads 2018-03-02 18:56:23 +01:00
stacks.h apply_from_stack_frame: use correct frame base 2019-07-23 18:45:24 +02:00