"bogus form-number in form!" WARNING when printing disassembly of a function defined in the REPL

Bug #851170 reported by Jean-Philippe Paradis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Low
Unassigned

Bug Description

What I do:
In the REPL: (disassemble (lambda ()))

What happens:
Along with the disassembly, I get:

"WARNING: bogus form-number in form! The source file has probably
been changed too much to cope with."

Analysis:
I know that this warning is related specifically to printing the disassembly, because just entering (lambda ()) in the REPL doesn't produce it, and if I then inspect the resulting function object's code-object repeatedly with the Inspector, the warning (truncated) gets printed in the REPL each time:
"WARNING: bogus form-number in form! The source file has probably .."

SBCL version: 1.0.51
uname -a: Linux dynamorph 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux

*features*:
(:SWANK :QUICKLISP :SB-BSD-SOCKETS-ADDRINFO :ASDF2 :ASDF :ASDF-UNIX :ANSI-CL
 :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE
 :SB-EVAL :SB-SOURCE-LOCATIONS :IEEE-FLOATING-POINT :X86 :UNIX :ELF :LINUX
 :SB-THREAD :LARGEFILE :GENCGC :STACK-GROWS-DOWNWARD-NOT-UPWARD
 :C-STACK-IS-CONTROL-STACK :COMPARE-AND-SWAP-VOPS :UNWIND-TO-FRAME-AND-CALL-VOP
 :RAW-INSTANCE-INIT-VOPS :STACK-ALLOCATABLE-CLOSURES :STACK-ALLOCATABLE-VECTORS
 :STACK-ALLOCATABLE-LISTS :STACK-ALLOCATABLE-FIXED-OBJECTS :ALIEN-CALLBACKS
 :CYCLE-COUNTER :INLINE-CONSTANTS :MEMORY-BARRIER-VOPS :MULTIPLY-HIGH-VOPS
 :LINKAGE-TABLE :OS-PROVIDES-DLOPEN :OS-PROVIDES-DLADDR :OS-PROVIDES-PUTWC
 :OS-PROVIDES-SUSECONDS-T :OS-PROVIDES-GETPROTOBY-R :OS-PROVIDES-POLL)

Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

Doesn't occur on current HEAD -- and I'm reasonably sure this is already in 1.0.52, and even if not a release is due shortly so I'm marking this as released already.

Changed in sbcl:
status: New → Fix Released
Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

Wasn't fixed after all.

Need to have a high debug to see this.

Changed in sbcl:
status: Fix Released → In Progress
assignee: nobody → Nikodemus Siivola (nikodemus)
importance: Undecided → Low
Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

commit 04a651e749befd65ffd8bf49f689b6e7d55607e2
Author: Nikodemus Siivola <email address hidden>
Date: Thu May 17 15:22:22 2012 +0300

    fix source information for functions from EVAL

     * Removed the breathtaking (NAMED-LAMBDA (EVAL (DEFUN FOO)) ...) hack, which
       caused inconsistent source locations, and broke the built-in debugger
       source command for evaluated functions.

       Replace it with *SOURCE-FORM-CONTEXT-ALIST*, which allows the simple
       evaluator to communicate the original context to the compiler without
       messing with the function source.

       This also means we no longer have to wrap named-lambdas and lambdas in
       another lambda, but can instead compile them directly -- which in turn
       allows FUNCTION-LAMBDA-EXPRESSION to work correctly for definitions from
       EVAL and LOAD.

     * Additionally, use a handler to muffle any compiler notes from EVAL instead
       of using a declaration: those can leak to the user via F-L-E.

     * Change ACTUALLY-COMPILE to return a function signaling an error instead of
       returning NIL when compilation fails fatally. Doing this in
       ACTUALLY-COMPILE allows us to rely on COMPILE-IN-LEXENV always returning a
       function, and gives easy access to a better error message.

     * Properly associate COMPILER-ERRORS with their SIGNAL-ERROR restart.

     * Adjust debug.impure.lisp to be less dependent on the details of
       %SIMPLE-EVAL.

     * Test cases. Pay special attention to TEST-DEBUGGER in debug.impure.lisp.

     * New docstring for COMPILE. Added a sneaky teaser about COMPILE being able
       to recompile things, which is new starting to look feasible.

Changed in sbcl:
assignee: Nikodemus Siivola (nikodemus) → nobody
status: In Progress → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.