0.7.5.4:
authorWilliam Harold Newman <william.newman@airmail.net>
Thu, 4 Jul 2002 22:08:52 +0000 (22:08 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Thu, 4 Jul 2002 22:08:52 +0000 (22:08 +0000)
merged CSR's "BUG 156" patch (from sbcl-devel 2002-07-02)

BUGS
src/compiler/main.lisp
tests/compiler.pure.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index 874a2af..08bfbdc 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1130,13 +1130,6 @@ WORKAROUND:
   but it has happened in more complicated cases (which I haven't
   figured out how to reproduce).
 
-156:
-  FUNCTION-LAMBDA-EXPRESSION doesn't work right in 0.7.0 or 0.7.2.9:
-    * (function-lambda-expression #'(lambda (x) x))
-    debugger invoked on condition of type TYPE-ERROR:
-      The value NIL is not of type SB-C::DEBUG-SOURCE
-  (reported by Alexey Dejneka sbcl-devel 2002-04-12)
-
 157:
   Functions SUBTYPEP, TYPEP, UPGRADED-ARRAY-ELEMENT-TYPE, and 
   UPGRADED-COMPLEX-PART-TYPE should have an optional environment argument.
index 89f7813..55be15e 100644 (file)
                 (gethash (leaf-info fun) entry-table)
               (aver found-p)
               result))
+       ;; KLUDGE: This code duplicates some other code in this
+       ;; file. In the great reorganzation, the flow of program logic
+       ;; changed from the original CMUCL model, and that path (as of
+       ;; sbcl-0.7.5 in SUB-COMPILE-FILE) was no longer followed for
+       ;; CORE-OBJECTS, leading to BUG 156. This place is
+       ;; transparently not the right one for this code, but I don't
+       ;; have a clear enough overview of the compiler to know how to
+       ;; rearrange it all so that this operation fits in nicely, and
+       ;; it was blocking reimplementation of 
+       ;; (DECLAIM (INLINE FOO)) (MACROLET ((..)) (DEFUN FOO ...))
+       ;;
+       ;; FIXME: This KLUDGE doesn't solve all the problem in an
+       ;; ideal way, as (1) definitions typed in at the REPL without
+       ;; an INLINE declaration will give a NULL
+       ;; FUNCTION-LAMBDA-EXPRESSION (allowable, but not ideal) and
+       ;; (2) INLINE declarations will yield a
+       ;; FUNCTION-LAMBDA-EXPRESSION headed by
+       ;; SB-C:LAMBDA-WITH-LEXENV, even for null LEXENV.
+       ;;
+       ;; CSR, 2002-07-02
+       (when (core-object-p *compile-object*)
+         (fix-core-source-info *source-info* *compile-object*))
+
         (mapc #'clear-ir1-info components-from-dfo)
         (clear-stuff)))))
 
index 7b4346c..f7e6be0 100644 (file)
 (dotimes (i 14)
   (when (typep i '(and integer (satisfies oddp)))
     (print i)))
+
+;;; bug 156 (reported by APD sbcl-devel 2002-04-12, fixed by CSR patch
+;;; sbcl-devel 2002-07-02): FUNCTION-LAMBDA-EXPRESSION of
+;;; interactively-compiled functions was broken by sleaziness and
+;;; confusion in the assault on 0.7.0, so this expression used to
+;;; signal TYPE-ERROR when it found NIL instead of a DEBUG-SOURCE.
+(eval '(function-lambda-expression #'(lambda (x) x)))
index 500fae4..858a599 100644 (file)
@@ -18,4 +18,4 @@
 ;;; for internal versions, especially for internal versions off the
 ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.7.5.3"
+"0.7.5.4"