Greetings!
Richard Fateman <fateman@gmail.com> writes:
> 2. fix sbcl flags so that the handler still works after the first floating-point error..
Not sure about sbcl, but this sounds like the standard IEEE SIGFPE
handling in which it is impossible to continue or return from the
instruction raising the signal without disabling the trap. One can
lonjmp somewhere else leaving the trap in place. It is not clear if
this explains your results as it does not appear you are trying to
continue. See the following in GCL:
=============================================================================
>(fpe::break-on-floating-point-exceptions :floating-point-overflow t)
(:FLOATING-POINT-OVERFLOW)
>(expt 2.0 1000000)
Correctable error:
Fast links are on: do (si::use-fast-links nil) for debugging
Signalled by EXPT.
If continued: Continue disabling floating point exception trapping
INTERNAL-SIMPLE-FLOATING-POINT-OVERFLOW:
Arithmetic error when performing (:INSN "mulsd 0x8(%rsp),%xmm0 ;" :OP ...) on (1.3407807929942598E154 1.3407807929942598E154):
Broken at EXPT. Type :H for Help.
1 (continue) Continue disabling floating point exception trapping
2 Return to top level.
>>1
#<inf>
Is this the current development version of gcl? What's the difference between continuing and aborting here? Does this mean that if I had done (* 10 (expt 2d0 100000)) and selected the continue restart, I would have gotten #<inf>?