0.7.7.5:
authorChristophe Rhodes <csr21@cam.ac.uk>
Sat, 31 Aug 2002 09:52:16 +0000 (09:52 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Sat, 31 Aug 2002 09:52:16 +0000 (09:52 +0000)
Minor HPPA fix
... get the SC-OFFSET right for the HPPA port
Include APD's test case for the (IF TEST <X> <X>) bogus constraint
propagation
Note in BUGS about autodeclaration of slot accessors

BUGS
src/runtime/hppa-assem.S
tests/compiler.impure.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index bd6adba..ffc5ebb 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1299,6 +1299,13 @@ WORKAROUND:
      results in a STYLE-WARNING:
        undefined-function 
          SB-SLOT-ACCESSOR-NAME::|COMMON-LISP-USER A-CLASS-X slot READER|
+
+     APD's fix for this was checked in to sbcl-0.7.6.20, but Pierre
+     Mai points out that the declamation of functions is in fact
+     incorrect in some cases (most notably for structure
+     classes).  This means that at present erroneous attempts to use
+     WITH-SLOTS and the like on classes with metaclass STRUCTURE-CLASS
+     won't get the corresponding STYLE-WARNING.
   c. the examples in CLHS 7.6.5.1 (regarding generic function lambda
      lists and &KEY arguments) do not signal errors when they should.
 
index 073e0dc..107140a 100644 (file)
@@ -306,7 +306,7 @@ undefined_tramp:
         .byte  4
         .byte  UNDEFINED_FUN_ERROR
         .byte  254
-        .byte  (0x40 + sc_DescriptorReg)
+        .byte  (0x20 + sc_DescriptorReg)
         .byte  1
        .align  4
 
index 02cda0e..63273bf 100644 (file)
     (compile nil '(lambda () (symbol-macrolet ((*standard-input* nil)) *standard-input*)))
   (assert failure-p)
   (assert (raises-error? (funcall function) program-error)))
-#|
+#||
 BUG 48c, not yet fixed:
 (multiple-value-bind (function warnings-p failure-p)
     (compile nil '(lambda () (symbol-macrolet ((s nil)) (declare (special s)) s)))
   (assert failure-p)
   (assert (raises-error? (funcall function) program-error)))
-|#
+||#
+\f
+;;; bug 120a: Turned out to be constraining code looking like (if foo
+;;; <X> <X>) where <X> was optimized by the compiler to be the exact
+;;; same block in both cases, but not turned into (PROGN FOO <X>).
+;;; Fixed by APD in sbcl-0.7.7.2, who provided this test:
+(declaim (inline dont-constrain-if-too-much))
+(defun dont-constrain-if-too-much (frame up-frame)
+  (declare (optimize (speed 3) (safety 1) (debug 1)))
+  (if (or (not frame) t)
+      frame
+      "bar"))
+(defun dont-constrain-if-too-much-aux (x y)
+  (declare (optimize (speed 3) (safety 1) (debug 1)))
+  (if x t (if y t (dont-constrain-if-too-much x y))))
+
+(assert (null (dont-constrain-if-too-much-aux nil nil)))  
 \f
 ;;;; tests not in the problem domain, but of the consistency of the
 ;;;; compiler machinery itself
index d909a0b..2b267bd 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.7.4"
+"0.7.7.5"