1.0.5.33: fix botched commit 1.0.5.32: partial fix for DISASSEMBLE buglet
authorNikodemus Siivola <nikodemus@random-state.net>
Sat, 5 May 2007 10:36:00 +0000 (10:36 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sat, 5 May 2007 10:36:00 +0000 (10:36 +0000)
  * Test for >= length, not > length.

  * Record the remaining WARNING in BUGS.

BUGS
NEWS
src/compiler/target-disassem.lisp
tests/compiler.impure.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index a7e6412..48ea0b3 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1807,3 +1807,16 @@ WORKAROUND:
   call to ROOM would see them, and allocate even more...
 
   Reported by Faré Rideau on sbcl-devel.
+
+414: strange DISASSEMBLE warning
+
+  Compiling and disassembling 
+
+   (defun disassemble-source-form-bug (x y z)
+     (declare (optimize debug))
+     (list x y z))
+
+  Gives
+
+   WARNING: bogus form-number in form!  The source file has probably 
+   been changed too much to cope with.
diff --git a/NEWS b/NEWS
index a8c6cf4..206fe12 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,9 @@ changes in sbcl-1.0.6 relative to sbcl-1.0.5:
     system running with GC inhibited.
   * bug fix: a DECLARE form evaluated at top-level now causes an error
     rather than silently (or verbosely) returning NIL.
+  * bug fix: trying to dissassemble functions compiled at high DEBUG could
+    result in a error being signalled due to source form lookup errors.
+    (reported by Peter Graves)
 
 changes in sbcl-1.0.5 relative to sbcl-1.0.4:
   * incompatible change: removed writer methods for host-ent-name,
index b34a6a1..996bc96 100644 (file)
             (sfcache-form-number-mapping-table cache) mapping-table))
     (cond ((null toplevel-form)
            nil)
-          ((> form-number (length mapping-table))
+          ((>= form-number (length mapping-table))
            (warn "bogus form-number in form!  The source file has probably ~@
                   been changed too much to cope with.")
            (when cache
index 4dd6b02..2d95261 100644 (file)
                  (defmacro macro-no-env ()
                    :foo))))
 
+(dolist (*evaluator-mode* '(:interpret :compile))
+  (disassemble (eval '(defun disassemble-source-form-bug (x y z)
+                       (declare (optimize debug))
+                       (list x y z)))))
+
 ;;; success
index 08fffd6..9b0dd83 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.5.32"
+"1.0.5.33"