Ticket #707 (closed defect: fixed)
spurious floating-point exceptions
| Reported by: | rme | Owned by: | rme |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Runtime (threads, GC) | Version: | trunk |
| Keywords: | Cc: |
Description
It looks like some exception flags get left on in the MXCSR somehow.
/* fp.c -- compile with cc -shared fp.c -o fp.dylib */
double rme_fdiv(double x, double y)
{
return x / y;
}
double rme_nan()
{
return rme_fdiv(0.0, 0.0);
}
From lisp:
? (open-shared-library "/Users/rme/fp.dylib") #<SHLIB /Users/rme/fp.dylib #x30200053443D> ? (external-call "rme_nan" :double-float) 1D+-0 #| not-a-number |# ? (log 1 2) > Error: FLOATING-POINT-INVALID-OPERATION detected > performing LOG on (1.0) > While executing: %FP-ERROR-FROM-STATUS, in process listener(1). > Type :POP to abort, :R for a list of available restarts. > Type :? for other options. 1 > :pop ? (log 1 2) 0.0 ?
Change History
Note: See
TracTickets for help on using
tickets.
