From: David W. <dav...@ul...> - 2007-05-10 22:47:48
|
Hi, Here's a small snippet of code that has no real purpose but seems to trigger a bug in SBCL: (funcall #'(lambda (x) (sin (log (* (exp x) -1.0)))) 0) clisp 2.38, CMUCL 19C and Lispworks 5.0 PE (OSX) returns #C(0.0 11.54874) SBCL 1.0.3 and 1.0.5 gives this error: arithmetic error floating-point-invalid-operation signalled [Condition of type floating-point-invalid-operation] Restarts: 0: [abort] Return to SLIME's top level. 1: [terminate-thread] Terminate this thread (#<thread "new-repl-thread" {C1F2119}>) Backtrace: 0: ((flet #:g150)) 1: (sb-vm:sigfpe-handler #<unavailable argument> #.(sb-sys:int-sap #XB65865FC) #<unavailable argument>) 2: (sb-vm:sigfpe-handler #<unavailable argument> #.(sb-sys:int-sap #XB65865FC) #<unavailable argument>) 3: (sb-sys:invoke-interruption #<CLOSURE (lambda #) {CF7F36D}>) 4: ("foreign function: call_into_lisp") 5: ("foreign function: funcall3") 6: ("foreign function: interrupt_handle_now") 7: (sin #.SB-EXT:DOUBLE-FLOAT-NEGATIVE-INFINITY) 8: (sin #C(#.SB-EXT:DOUBLE-FLOAT-NEGATIVE-INFINITY 3.141592653589793d0)) 9: (sb-c::one-arg-derive-type #<sb-c::lvar 1 {C708D21}> #<FUNCTION (lambda #) {A0D0FB5}> #<FUNCTION sin> t) 10: (sb-c::ir1-optimize-combination #<sb-c::combination :fun # :args (#) {C708CC1}>) 11: (sb-c::ir1-optimize-block #<sb-c::cblock 5 :START c2 {C6EBEC1}>) 12: (sb-c::ir1-optimize #<sb-c:component :name "lambda nil" {CF71BA1}> nil) 13: (sb-c::ir1-optimize-until-done #<sb-c:component :name "lambda nil" {CF71BA1}>) 14: (sb-c::ir1-phases #<sb-c:component :name "lambda nil" {CF71BA1}>) 15: (sb-c::compile-component #<sb-c:component :name "lambda nil" {CF71BA1}>) 16: (sb-c::%compile (lambda () #'(lambda (x) (sin #))) #<sb-c::core-object >) 17: ((lambda ())) 18: (sb-c::%with-compilation-unit #<CLOSURE (lambda #) {C6BA615}>) 19: (sb-c::actually-compile nil (lambda () #'(lambda (x) (sin #))) #<NULL-LEXENV>) 20: (sb-c:compile-in-lexenv nil (lambda () #'(lambda (x) (sin #))) #<NULL-LEXENV>) 21: (sb-impl::%simple-eval #'(lambda (x) (sin (log #))) #<NULL-LEXENV>) 22: (sb-int:simple-eval-in-lexenv #'(lambda (x) (sin (log #))) #<NULL-LEXENV>) 23: (sb-int:simple-eval-in-lexenv (funcall #'(lambda (x) (sin #)) 0) #<NULL-LEXENV>) 24: (swank::eval-region "(funcall #'(lambda (x) (sin (log (* (exp x) -1.0)))) 0) " t) 25: ((lambda ())) 26: ((lambda (swank-backend::fn)) #<CLOSURE (lambda #) {C6B99BD}>) 27: (swank::call-with-buffer-syntax #<CLOSURE (lambda #) {C6B99BD}>) 28: (swank:listener-eval "(funcall #'(lambda (x) (sin (log (* (exp x) -1.0)))) 0) ") 29: (sb-int:simple-eval-in-lexenv (swank:listener-eval "(funcall #'(lambda (x) (sin (log (* (exp x) -1.0)))) 0) ") #<NULL-LEXENV>) 30: ((lambda ())) 31: ((lambda (swank-backend::hook swank-backend::fun)) #<FUNCTION swank:swank-debugger-hook> #<CLOSURE (lambda #) {C6B9845}>) 32: ((lambda ())) 33: ((lambda (swank-backend::hook swank-backend::fun)) #<FUNCTION swank:swank-debugger-hook> #<FUNCTION (lambda #) {C6FDE25}>) 34: (swank::call-with-redirected-io #<swank::connection {C640A99}> #<CLOSURE (lambda #) {C6B9795}>) 35: (swank::call-with-connection #<swank::connection {C640A99}> #<FUNCTION (lambda #) {C6FDE25}>) 36: (swank::handle-request #<swank::connection {C640A99}>) 37: (swank::repl-loop #<swank::connection {C640A99}>) 38: (swank::repl-loop #<swank::connection {C640A99}>) 39: (swank::call-with-bindings nil #<CLOSURE (lambda #) {C1EEFE5}>) 40: ((lambda ())) 41: ("foreign function: call_into_lisp") 42: ("foreign function: funcall0") 43: ("foreign function: new_thread_trampoline") 44: ("foreign function: #xB7FA82C1") any ideas? thanks, --david |