From: Alexey D. <ade...@us...> - 2003-08-29 08:45:52
|
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" |