Update of /cvsroot/sbcl/sbcl
In directory sc8-pr-cvs1:/tmp/cvs-serv28413
Modified Files:
BUGS version.lisp-expr
Log Message:
0.8.3.11:
* New bug 282;
* remove bug entry 233a;
... add a test for it.
Index: BUGS
===================================================================
RCS file: /cvsroot/sbcl/sbcl/BUGS,v
retrieving revision 1.337
retrieving revision 1.338
diff -u -d -r1.337 -r1.338
--- BUGS 27 Aug 2003 06:49:16 -0000 1.337
+++ BUGS 29 Aug 2003 08:45:38 -0000 1.338
@@ -824,20 +824,6 @@
produce invalid code, but type checking is not accurate.)
233: bugs in constraint propagation
- a.
- (defun foo (x)
- (declare (optimize (speed 2) (safety 3)))
- (let ((y 0d0))
- (values
- (the double-float x)
- (setq y (+ x 1d0))
- (setq x 3d0)
- (quux y (+ y 2d0) (* y 3d0)))))
- (foo 4) => segmentation violation
-
- (see usage of CONTINUATION-ASSERTED-TYPE in USE-RESULT-CONSTRAINTS)
- (see also bug 236)
-
b.
(declaim (optimize (speed 2) (safety 3)))
(defun foo (x y)
@@ -1195,6 +1181,16 @@
The issue seems to be that construction of a discriminating function
calls COMPUTE-EFFECTIVE-METHOD with methods that are not all applicable.
+
+282: "type checking in full calls"
+ In current (0.8.3.6) implementation a CAST in a full call argument
+ is not checked; but the continuation between the CAST and the
+ combination has the "checked" type and CAST performs unsafe
+ coercion; this may lead to errors: if FOO is declared to take a
+ FIXNUM, this code will produce garbage on a machine with 30-bit
+ fixnums:
+
+ (foo (aref (the (array (unsigned-byte 32)) x)))
DEFUNCT CATEGORIES OF BUGS
IR1-#:
Index: version.lisp-expr
===================================================================
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.1195
retrieving revision 1.1196
diff -u -d -r1.1195 -r1.1196
--- version.lisp-expr 28 Aug 2003 15:32:28 -0000 1.1195
+++ version.lisp-expr 29 Aug 2003 08:45:38 -0000 1.1196
@@ -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.8.3.10"
+"0.8.3.11"
|