0.9.12.4:
authorWilliam Harold Newman <william.newman@airmail.net>
Fri, 28 Apr 2006 13:08:50 +0000 (13:08 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Fri, 28 Apr 2006 13:08:50 +0000 (13:08 +0000)
tweaked whitespace in compiler while hunting unsuccessfully
for a quick fix for bug 401
logged bug 401

BUGS
src/compiler/ir1tran.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index 8088a3b..4b009c1 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -2129,6 +2129,22 @@ WORKAROUND:
   For some more details see comments for (define-alien-type-method
   (c-string :deport-gen) ...)  in host-c-call.lisp.
 
-400: "aggressive constant folding"
-  (fixed in sbcl-0.9.10.17)
-
+401: "optimizer runaway on bad constant type specifiers in TYPEP"
+  In 0.9.12.3 (and probably many earlier versions), COMPILE-FILE on
+    (defun ouch401 ()
+      (etypecase (signum (- x y))
+        ((-1 nil))
+         ((0 1) (oops "shouldn't happen"))))
+  or just
+    (defun foo401 (x)
+      (typep x '(-1 nil)))
+  spins emitting what seems to be an endless series of compiler 
+  warnings like
+    ; --> TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP 
+    ; --> TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP 
+    ; --> TYPEP 
+    ; ==>
+    ;   (TYPEP SB-C::OBJECT '(-1 NIL))
+    ; 
+    ; caught WARNING:
+    ;   illegal type specifier for TYPEP: (-1 NIL)
index 8026ab7..c6cf4d0 100644 (file)
                                        ,@body
                                        (return-from ,skip nil)))))
                    (ir1-convert ,start ,next ,result
-                                (make-compiler-error-form ,condition ,form)))))))
+                                (make-compiler-error-form ,condition
+                                                          ,form)))))))
 
   ;; Translate FORM into IR1. The code is inserted as the NEXT of the
   ;; CTRAN START. RESULT is the LVAR which receives the value of the
                              (aver (and (consp lexical-def)
                                         (eq (car lexical-def) 'macro)))
                              (ir1-convert start next result
-                                          (careful-expand-macro (cdr lexical-def)
-                                                                form))))))
+                                          (careful-expand-macro
+                                           (cdr lexical-def)
+                                           form))))))
                        ((or (atom opname) (not (eq (car opname) 'lambda)))
                         (compiler-error "illegal function call"))
                        (t
index 291b8b1..8236d82 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".)
-"0.9.12.3"
+"0.9.12.4"