From: Nikodemus S. <de...@us...> - 2008-03-17 17:13:45
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv29062 Modified Files: BUGS NEWS version.lisp-expr Log Message: 1.0.15.36: fix bug 423 * TRULY-THE no longer eagerly annotates the LVAR, but rather acts like THE in unsafe code. (Inserts a cast for which no type-check is generated.) * ALLOC-NUMBER-STACK-SPACE and ALLOC-ALIEN-STACK-SPACE were missing :RESULT-TYPES, which was masked by the old TRULY-THE implementation. (Tested on x86, x86-64, PPC, but all backends updated -- hopefully correctly.) * Docstrings for THE and TRULY-THE. FWIW, this patch seems to make PPC+GENCGC build happy once again: but I don't know if that means the problems there were/are related to bug 423 -- or if the exact memory layout just happens to change subtly so that whatever corruption occurs, just happens to occur in a place where the GC doesn't see it anymore. (Or if the exact point at which GC runs is now just slightly different so that the problem pointers are not live anymore, or...) Index: BUGS =================================================================== RCS file: /cvsroot/sbcl/sbcl/BUGS,v retrieving revision 1.533 retrieving revision 1.534 diff -u -d -r1.533 -r1.534 --- BUGS 13 Mar 2008 15:40:28 -0000 1.533 +++ BUGS 17 Mar 2008 17:13:40 -0000 1.534 @@ -1889,26 +1889,6 @@ 2007-07-06. (We don't _have_ to check things like this, but we generally try to check returns in safe code, so we should here too.) -423: TRULY-THE and *CHECK-CONSISTENCY* - - The following signals errors due to TRULY-THEs in dead code: - - (let ((sb-c::*check-consistency* t)) - (handler-bind ((warning #'error)) - (flet ((make-lambda (type) - `(lambda (x) - ((lambda (z) - (if (listp z) - (let ((q (truly-the list z))) - (length q)) - (if (arrayp z) - (let ((q (truly-the vector z))) - (length q)) - (error "oops")))) - (the ,type x))))) - (compile nil (make-lambda 'list)) - (compile nil (make-lambda 'vector))))) - 424: toplevel closures and *CHECK-CONSISTENCY* The following breaks under COMPILE-FILE if *CHECK-CONSISTENCY* is true. Index: NEWS =================================================================== RCS file: /cvsroot/sbcl/sbcl/NEWS,v retrieving revision 1.1321 retrieving revision 1.1322 diff -u -d -r1.1321 -r1.1322 --- NEWS 14 Mar 2008 19:44:25 -0000 1.1321 +++ NEWS 17 Mar 2008 17:13:40 -0000 1.1322 @@ -15,6 +15,7 @@ * optimization: modular arithmetic for a particular requested width is implemented using a tagged representation unless a better representation is available. + * fixed bug 423: TRULY-THE and *CHECK-CONSISTENCY* interaction. * bug fix: SB-BSD-SOCKETS:MAKE-INET-ADDRESS checks the input string for wellformedness and returns a specialized vector. (reported by Francois-Rene Rideau) Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.3906 retrieving revision 1.3907 diff -u -d -r1.3906 -r1.3907 --- version.lisp-expr 17 Mar 2008 14:10:04 -0000 1.3906 +++ version.lisp-expr 17 Mar 2008 17:13:40 -0000 1.3907 @@ -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".) -"1.0.15.35" +"1.0.15.36" |