all of the arguments are circular is probably desireable).
213: "Sequence functions and type checking"
- a. (fixed in 0.8.4.36)
b. MAP, when given a type argument that is SUBTYPEP LIST, does not
check that it will return a sequence of the given type. Fixing
it along the same lines as the others (cf. work done around
(probably related to the bug 280.)
-313: "source-transforms are Lisp-1"
- (fixed in 0.8.10.2)
-
314: "LOOP :INITIALLY clauses and scope of initializers"
reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP
test suite, originally by Thomas F. Burdick.
the heap and certainly confuses the world if that string is used by
C code.
-316: "SHIFTF and multiple values"
- reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP
- test suite.
- (shiftf (values x y) (values y x))
- gives an error in sbcl-0.8.10.
-
- Parts of the explanation of SHIFTF in ANSI CL talk about multiple
- store variables, and the X3J13 vote
- SETF-MULTIPLE-STORE-VARIABLES:ALLOW also says that SHIFTF should
- support multiple value places.
-
317: "FORMAT of floating point numbers"
reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP
test suite.
#(1 2 ((SB-IMPL::|,|) + 2 2) 4)
which probably isn't intentional.
-320: "shared to local slot in class redefinition"
- reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP
- test suite.
- ;; Shared slot becomes local.
- ;; 4.3.6.1.: "The value of a slot that is specified as shared in
- ;; the old class and as local in the new class is retained."
- (multiple-value-bind (value condition)
- (ignore-errors
- (defclass foo85a ()
- ((size :initarg :size :initform 1 :allocation :class)))
- (defclass foo85b (foo85a) ())
- (setq i (make-instance 'foo85b))
- (defclass foo85a () ((size :initarg :size :initform 2) (other)))
- (slot-value i 'size))
- (list value (type-of condition)))
- should return (1 NULL) but returns (2 NULL) in sbcl-0.8.10. See
- ensuing discussion sbcl-devel for how to deal with this.
-
321: "DEFINE-METHOD-COMBINATION lambda list parsing"
reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP
test suite.
(vector-push-extend (list 'string p1 p2) s))
(:method ((p1 t) (p2 t) s) (vector-push-extend (list t p1 p2) s)))
-322: "DEFSTRUCT :TYPE LIST predicate and improper lists"
- (fixed in sbcl-0.8.10.23)
-
323: "REPLACE, BIT-BASH and large strings"
The transform for REPLACE on simple-base-strings uses BIT-BASH, which
at present has an upper limit in size. Consequently, in sbcl-0.8.10
to about 1024 (and similarly for signed-byte), so
(open "/dev/zero" :element-type '(unsigned-byte 1025))
gives an error in sbcl-0.8.10.
+
+325: "CLOSE :ABORT T on supeseding streams"
+ Closing a stream opened with :IF-EXISTS :SUPERSEDE with :ABORT T leaves no
+ file on disk, even if one existed before opening.
+
+ The illegality of this is not crystal clear, as the ANSI dictionary
+ entry for CLOSE says that when :ABORT is T superseded files are not
+ superseded (ie. the original should be restored), whereas the OPEN
+ entry says about :IF-EXISTS :SUPERSEDE "If possible, the
+ implementation should not destroy the old file until the new stream
+ is closed." -- implying that even though undesirable, early deletion
+ is legal. Restoring the original would none the less be the polite
+ thing to do.