[Python-Dev] troubling math bug under IRIX 6.5

Tim Peters tim.one@home.com
Tue, 13 Feb 2001 19:13:47 -0500


[Tommy]
> sorry- BOTH blew up until I turned off optimization.

OK, that rules out int->float conversion as the cause (one of the examples
didn't do any conversions).  That multiplication by 4 triggered it rules out
that any IEEE exceptions are to blame either (mult by 4 doesn't even trigger
the IEEE "inexact" exception).

> now neither does.  shall I turn opts back on and try a few more
> cases?

Yes, please, one more:

    4.0 * 3.1

Or, if that works, go back to the failing

    4.0 * math.exp(-0.5)

In any failing case, can you jump into a debubber and get a stack trace?

Do you happen to have

    WANT_SIGFPE_HANDLER

#define'd when you compile Python on this platform?  If so, it complicates
the code a lot.  I wonder about that because you got a "bus error", and when
WANT_SIGFPE_HANDLER is #defined we get a whole pile of ugly setjmp/longjmp
code that doesn't show up on my box.

Another tack, as a temporary workaround:  try disabling optimization only
for Objects/floatobject.c.  That will probably fix the problem, and if so
that's enough of a workaround to get you unstuck while pursuing these other
irritations.