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

Bug #851170 reported by Jean-Philippe Paradis on 2011-09-15
This bug affects 1 person
Affects Status Importance Assigned to Milestone

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."

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


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
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
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

     * 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  Edit
Everyone can see this information.

Other bug subscribers