-169:
- (reported by Alexey Dejneka on sbcl-devel 2002-05-12)
- * (defun test (n)
- (let ((*x* n))
- (declare (special *x*))
- (getx)))
- ; in: LAMBDA NIL
- ; (LET ((*X* N))
- ; (DECLARE (SPECIAL *X*))
- ; (GETX))
- ;
- ; caught STYLE-WARNING:
- ; using the lexical binding of the symbol *X*, not the
- ; dynamic binding, even though the symbol name follows the usual naming
- ; convention (names like *FOO*) for special variables
- ; compilation unit finished
- ; caught 1 STYLE-WARNING condition
- But the code works as it should. Checked in 0.6.12.43 and later.
-
-170:
- (reported by Matthias Hoelzl on sbcl-devel 2002-05-13)
- * (defmacro foo () ''x)
- FOO
- * (foo)
- X
- * (compile 'foo)
- FOO
- NIL
- NIL
- * (foo)
- debugger invoked on condition of type UNDEFINED-FUNCTION:
- The function FOO is undefined.
-
+171:
+ (reported by Pierre Mai while investigating bug 47):
+ (DEFCLASS FOO () ((A :SILLY T)))
+ signals a SIMPLE-ERROR, not a PROGRAM-ERROR.
+
+172:
+ sbcl's treatment of at least macro lambda lists is too permissive;
+ e.g., in sbcl-0.7.3.7:
+ (defmacro foo (&rest rest bar) `(,bar ,rest))
+ (macroexpand '(foo quux zot)) -> (QUUX (QUUX ZOT))
+ whereas section 3.4.4 of the CLHS doesn't allow required parameters
+ to come after the rest argument.
+
+173:
+ The compiler sometimes tries to constant-fold expressions before
+ it checks to see whether they can be reached. This can lead to
+ bogus warnings about errors in the constant folding, e.g. in code
+ like
+ (WHEN X
+ (WRITE-STRING (> X 0) "+" "0"))
+ compiled in a context where the compiler can prove that X is NIL,
+ and the compiler complains that (> X 0) causes a type error because
+ NIL isn't a valid argument to #'>. Until sbcl-0.7.4.10 or so this
+ caused a full WARNING, which made the bug really annoying because then
+ COMPILE and COMPILE-FILE returned FAILURE-P=T for perfectly legal
+ code. Since then the warning has been downgraded to STYLE-WARNING,
+ so it's still a bug but at least it's a little less annoying.
+
+174:
+ The error message from attempting to use a #\Return format
+ directive:
+ (format nil "~^M") ; replace "^M" with a literal #\Return
+ debugger invoked on condition of type SB-FORMAT::FORMAT-ERROR:
+ error in format: unknown format directive
+ ~
+ ^
+ is not terribly helpful; this is more noticeable than parallel cases
+ with e.g. #\Backspace because of the differing newline conventions
+ on various operating systems. (reported by Harald Hanche-Olsen on
+ cmucl-help 2002-05-31)
+
+175:
+ (fixed in sbcl-0.7.4.14)