From: William H. N. <wil...@ai...> - 2004-12-27 16:10:43
|
Doing (LOAD (COMPILE-FILE "bug353.lisp")) on this file (cl:in-package "CL-USER") (defun frob (x) (format t "~&x = ~S~%" x) (funcall x)) (flet ((optimized () (declare (optimize (speed 2) (debug 1))) ; tail call elimination (#:undefined-function 42)) (not-optimized () (declare (optimize (speed 1) (debug 2))) ; no tail call elimination (#:undefined-function 42)) (test (fun) (declare (optimize (speed 1) (debug 2))) ; no tail call elimination (funcall fun))) (dolist (frame '(#-x86 "undefined function" ; bug 353 "FLET COMMON-LISP-USER::TEST")) (frob (lambda () (test #'optimized))))) then typing BACKTRACE at the debug prompt, I get a reasonable-looking backtrace 0[1] backtr 0: (SB-KERNEL::UNDEFINED-FUN-ERROR-HANDLER 4 #<unavailable argument> #.(SB-SYS:INT-SAP #X4035A7E0) #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X4035A4B0 :TYPE (* (STRUCT SB-VM::OS-CONTEXT-T-STRUCT))> (14))[:EXTERNAL] 1: (SB-KERNEL:INTERNAL-ERROR 2 #.(SB-SYS:INT-SAP #X4035A4B0) #<unavailable argument>)[:EXTERNAL] 2: ("foreign function: call_into_lisp") 3: ("foreign function: funcall2") 4: ("foreign function: interrupt_internal_error") 5: ("foreign function: sigtrap_handler") 6: ("foreign function: #x400676B0") 7: ("FLET COMMON-LISP-USER::TEST" #<FUNCTION "FLET COMMON-LISP-USER::OPTIMIZED" {9731025}>) 8: ("top level form (FLET (# # #) (DOLIST # #))")[:TOPLEVEL] ... However, the corresponding automated test in debug.impure.lisp fails, complaining of VERIFY-BACKTRACE-STUNTED. My understanding of the debugger is mostly limited to superficial interface stuff like BACKTRACE-AS-LIST. I have basically ignored nontrivial stuff like bugs in walking the stack. Thus, I'm far from qualified to take one keen look at the failuire and understand its significance. But my impression is that in this release this should be treated as a known problem (test (fun) (declare (optimize (speed 1) (debug 2))) ; no tail call elimination (funcall fun))) + #-x86 ; <- known bug on 0.8.17.31/Linux/x86 -- WHN 2004-12-27 (dolist (frame '(#-x86 "undefined function" ; bug 353 "FLET COMMON-LISP-USER::TEST")) (assert (verify-backtrace (lambda () (test #'optimized)) frame without worrying about it too much. -- William Harold Newman <wil...@ai...> "Aha! A paradox for our time: Can God send a spam message that would get through His filters?" -- http://groups.google.com/groups?selm=slrncokcvq.5gd.dmsilev%40bardeen.uchicago.edu |