DESCRIBE fails on closed-over functions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Evaluate the following from the REPL:
* (let ((x 0)) (defun foo () (incf x)))
* (describe 'foo)
After doing this, the following error appears:
debugger invoked on a SB-INT:BUG in thread #<THREAD "initial thread" RUNNING
Don't know how to use a DEBUG-SOURCE without a namestring or a form.
This is probably a bug in SBCL itself. (Alternatively, SBCL might have been
corrupted by bad user code, e.g. by an undefined Lisp operation like
(FMAKUNBOUND 'COMPILE), or by stray pointers from alien code or from unsafe
Lisp code; or there might be a bug in the OS or hardware that SBCL is running
on.) If it seems to be a bug in SBCL itself, the maintainers would like to
know about it. Bug reports are welcome on the SBCL mailing lists, which you
can find at <http://
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-
0: [ABORT] Exit debugger, returning to top level.
(SB-INT:BUG
"Don't know how to use a DEBUG-SOURCE without ~
0] ^C
The bug happens on my development machine with 1.0.50, but I also reproduced it on the latest version from the source repository as of 2011-08-11.
uname -a:
Linux em-desktop 2.6.32-
The problem was also seen on OSX 10.6.8
Content of *FEATURES*:
(:QUICKLISP :SB-BSD-
:COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE
:SB-EVAL :SB-SOURCE-
:SB-THREAD :LARGEFILE :GENCGC :STACK-
:C-STACK-
:UNWIND-
:STACK-
:STACK-
:CYCLE-COUNTER :COMPLEX-FLOAT-VOPS :FLOAT-EQL-VOPS :INLINE-CONSTANTS
:MEMORY-
:OS-PROVIDES-PUTWC :OS-PROVIDES-
:OS-PROVIDES-
Changed in sbcl: | |
assignee: | nobody → Nikodemus Siivola (nikodemus) |
status: | New → In Progress |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
on a related note, see also:
http:// dwim.hu/ gitweb/ gitweb. cgi?p=sbcl; a=commit; h=678940ebed49b 585f79ab1fe9788 ae1b228e159b
"Added sb-ext: *suppress- print-errors* modelled after *break-on-signals*.
Extended the various print functions and cl:describe to honour its value
and try to recover after errors coming from inside these functions."
with that patch applied, he may have more luck dealing with this error with the added restarts.