From: Nikodemus S. <nik...@ra...> - 2010-02-26 15:18:12
|
On 26 January 2010 19:20, Tamas K Papp <tk...@gm...> wrote: > In my code, I was relying on (log 0) signalling an error. It worked > fine. After a bit of development (basically a few hours), I noticed > my code misbehaving, and found that the cause is: > > CL-USER> (sb-int:get-floating-point-modes) > (:TRAPS NIL :ROUNDING-MODE :NEAREST :CURRENT-EXCEPTIONS (:INEXACT) > :ACCRUED-EXCEPTIONS (:INEXACT) :FAST-MODE NIL :PRECISION :53-BIT) > > I never explicitly unset the traps. Is there anything else in SBCL > that could unset them without my knowledge? One of the reason setting traps isn't supported is just this. :/ SBCL should not be unsetting them behind your back, but calls to libc may do so -- and SBCL doesn't notice if that happens. Cheers, -- Nikodemus |