0.8.0.62:
[sbcl.git] / BUGS
diff --git a/BUGS b/BUGS
index ab82a20..534f427 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -108,23 +108,6 @@ WORKAROUND:
   Perhaps any number of such consecutive lines ought to turn into a
   single "compiling top-level forms:" line.
 
-10:
-  The way that the compiler munges types with arguments together
-  with types with no arguments (in e.g. TYPE-EXPAND) leads to
-  weirdness visible to the user:
-       (DEFTYPE FOO () 'FIXNUM)
-       (TYPEP 11 'FOO) => T
-       (TYPEP 11 '(FOO)) => T, which seems weird
-       (TYPEP 11 'FIXNUM) => T
-       (TYPEP 11 '(FIXNUM)) signals an error, as it should
-  The situation is complicated by the presence of Common Lisp types
-  like UNSIGNED-BYTE (which can either be used in list form or alone)
-  so I'm not 100% sure that the behavior above is actually illegal.
-  But I'm 90+% sure, and the following related behavior,
-       (TYPEP 11 'AND) => T
-  treating the bare symbol AND as equivalent to '(AND), is specifically
-  forbidden (by the ANSI specification of the AND type).
-
 11:
   It would be nice if the
        caught ERROR:
@@ -207,13 +190,6 @@ WORKAROUND:
   so they could be supported after all. Very likely 
   SIGCONTEXT-FLOATING-POINT-MODES could now be supported, too.
 
-43:
-  (as discussed by Douglas Crosher on the cmucl-imp mailing list ca. 
-  Aug. 10, 2000): CMUCL currently interprets 'member as '(member); same
-  issue with 'union, 'and, 'or etc. So even though according to the
-  ANSI spec, bare 'MEMBER, 'AND, and 'OR are not legal types, CMUCL
-  (and now SBCL) interpret them as legal types.
-
 45:
   a slew of floating-point-related errors reported by Peter Van Eynde
   on July 25, 2000:
@@ -381,7 +357,7 @@ WORKAROUND:
     As a workaround for the problem, #'(SETF FOO) expressions can
   be replaced with (EFFICIENT-SETF-FUNCTION FOO), where
 (defmacro efficient-setf-function (place-function-name)
-  (or #+sbcl (and (sb-impl::info :function :accessor-for place-function-name)
+  (or #+sbcl (and (sb-int:info :function :accessor-for place-function-name)
                  ;; a workaround for the problem, encouraging the
                  ;; inline expansion of the structure accessor, so
                  ;; that the compiler can optimize its type test
@@ -566,22 +542,6 @@ WORKAROUND:
   under OpenBSD 2.9 on my X86 laptop. Do be patient when you try it:
   it took more than two minutes (but less than five) for me.
 
-144: 
-  (This was once known as IR1-4, but it lived on even after the
-  IR1 interpreter went to the big bit bucket in the sky.)
-  The system accepts DECLAIM in most places where DECLARE would be 
-  accepted, without even issuing a warning. ANSI allows this, but since
-  it's fairly easy to mistype DECLAIM instead of DECLARE, and the
-  meaning is rather different, and it's unlikely that the user
-  has a good reason for doing DECLAIM not at top level, it would be 
-  good to issue a STYLE-WARNING when this happens. A possible
-  fix would be to issue STYLE-WARNINGs for DECLAIMs not at top level,
-  or perhaps to issue STYLE-WARNINGs for any EVAL-WHEN not at top level.
-  [This is considered an IR1-interpreter-related bug because until
-  EVAL-WHEN is rewritten, which won't happen until after the IR1
-  interpreter is gone, the system's notion of what's a top-level form
-  and what's not will remain too confused to fix this problem.]
-
 145:
   ANSI allows types `(COMPLEX ,FOO) to use very hairy values for
   FOO, e.g. (COMPLEX (AND REAL (SATISFIES ODDP))). The old CMU CL
@@ -636,7 +596,6 @@ WORKAROUND:
 
   (due to reordering of the compiler this example is compiled
   successfully by 0.7.14, but the bug probably remains)
-  (possibly exercised by bug 254 test case)
 
 162:
   (reported by Robert E. Brown 2002-04-16) 
@@ -1093,14 +1052,6 @@ WORKAROUND:
   a. On X86 an immediate operand for IMUL is printed incorrectly.
   b. On X86 operand size prefix is not recognized.
 
-246: "NTH-VALUE scaling problem"
-  NTH-VALUE's current implementation for constant integers scales in
-  compile-time as O(n^4), as indeed must the optional dispatch
-  mechanism on which it is implemented.  While it is unlikely to
-  matter in real user code, it's still unpleasant to observe that
-  (NTH-VALUE 1000 (VALUES-LIST (MAKE-LIST 1001))) takes several hours
-  to compile.
-
 248: "reporting errors in type specifier syntax"
   (TYPEP 1 '(SYMBOL NIL)) says something about "unknown type
   specifier".
@@ -1113,70 +1064,8 @@ WORKAROUND:
   does not cause a warning. (BTW: old SBCL issued a warning, but for a
   function, which was never called!)
 
-253: "type checking is embedded THEs"
-  Compiler cannot perform type checking in
-
-    (let () (list (the fixnum (the unsigned-byte (eval -1)))))
-
-  (fixed in 0.8.0.34)
-
-254: (possibly bug 148 in a new guise)
-  In sbcl-0.8.0.52, COMPILE-FILE on 
-    (cl:in-package :cl-user)
-    (declaim (optimize (safety 3) (debug 2) (speed 2) (space 1)))
-    (defstruct foo
-      (uhw2 nil :type (or package null)))
-    (macrolet ((defprojection (variant &key lexpr eexpr)
-                 (let ()
-                   `(defmethod uu ((foo foo))
-                        (let ((uhw2 (foo.uhw2 bar)))
-                          (let ()
-                            (u-flunt uhw2
-                                     (baz (funcall ,lexpr south east 1)))))))))
-      (defprojection h
-        :lexpr (lambda (south east sched)
-                 (flet ((bd (x) (bref x sched)))
-                   (let ((avecname (gafp)))
-                     (declare (type (vector t) avecname))
-                     (multiple-value-prog1
-                         (progn
-                           (setf (avec.count avecname) (length rest))
-                           (setf (aref avecname 0) (bd (h south)))
-                           (setf (aref avecname 1) (bd (h east)))
-                           (stub avecname))
-                       (paip avecname)))))
-        :eexpr (lambda (south east))))
-  fails with 
-    debugger invoked on condition of type TYPE-ERROR:
-      The value NIL is not of type SB-C::NODE.
-
-255: 
-  In sbcl-0.8.0.52, COMPILE-FILE on
-    (cl:in-package :cl-user)
-    (declaim (optimize (safety 3) (debug 2) (speed 2) (space 1)))
-    (defvar *1*)
-    (defvar *2*)
-    (defstruct v a b)
-    (defstruct w)
-    (defstruct yam (v nil :type (or v null)))
-    (defstruct un u)
-    (defstruct (bod (:include un)) bo)
-    (defstruct (bad (:include bod)) ba)
-    (declaim (ftype (function ((or w bad) (or w bad)) (values)) %ufm))
-    (defun %ufm (base bound) (froj base bound *1*) (values))
-    (declaim (ftype (function ((vector t)) (or w bad)) %pu))
-    (defun %pu (pds) *2*)
-    (defun uu (yam)
-      (let ((v (yam-v az)))
-        (%ufm v
-              (flet ((project (x) (frob x 0)))
-                (let ((avecname *1*))
-                  (multiple-value-prog1
-                      (progn (%pu avecname))
-                    (frob)))))))
-  fails with 
-    failed AVER:
-      "(AND (EQ (CONTINUATION-KIND START) INSIDE-BLOCK) (NOT (BLOCK-DELETE-P BLOCK)))"
+255:
+  (fixed in 0.8.0.57)
 
 DEFUNCT CATEGORIES OF BUGS
   IR1-#: