X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=BUGS;h=534f427fb98fac64556a0f0c5dd2fec2263c9026;hb=8871a1f72225f959a454a1b77f7a0e85642ba427;hp=ab82a20f0e019d37c32965f43d4b7c0c10dd8533;hpb=21148b7a67ddd53e7b6588edf4466b26c4e5e3ee;p=sbcl.git diff --git a/BUGS b/BUGS index ab82a20..534f427 100644 --- 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-#: