From: Liam H. <ln...@he...> - 2007-05-11 01:11:55
|
Well it once (0.9.16) worked OK (funcall (lambda (x) (sin (log (* (exp x) -1.0)))) 0) #C(0.0 11.548739357257748) >From your backtrace it looks like the log produces a negative infinity real part; try this: (log (* (exp 0) -1.0)) #C(0.0 3.141592653589793) On 5/10/07, David Wallin <dav...@ul...> wrote: > > 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 > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel > |