From: Gabor Melis Date: Tue, 23 Sep 2008 21:52:57 +0000 (+0000) Subject: 1.0.20.27: fixed bug 415 X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=013da4580d11f9174babda0781d3b42431ec2c4d;p=sbcl.git 1.0.20.27: fixed bug 415 * (MAKE-ARRAY (1- ARRAY-DIMENSION-LIMIT)) does not cause GC invariant loss. ARRAY-DIMENSION-LIMIT was lowered by two to leave space for the array header. * logged FORMAT bug --- diff --git a/BUGS b/BUGS index ebccf55..dd4c15b 100644 --- a/BUGS +++ b/BUGS @@ -416,6 +416,8 @@ WORKAROUND: isn't too surprising since there are many differences in stack implementation and GC conservatism between the X86 and other ports.) + (Can't reproduce on x86 linux as of 1.0.20.23 - MGL) + This is probably the same bug as 216 173: @@ -627,6 +629,8 @@ WORKAROUND: the bad VECTOR-PUSH-EXTEND frame causes GC problems, though that may not be the actual problem. (CMU CL 18c doesn't have problems with this.) + (Can't reproduce on x86 linux as of 1.0.20.22 - MGL) + This is probably the same bug as 162 235: "type system and inline expansion" @@ -1046,7 +1050,7 @@ WORKAROUND: (open "/dev/zero" :element-type '(unsigned-byte 1025)) gives an error in sbcl-0.8.10. -325: "CLOSE :ABORT T on supeseding streams" +325: "CLOSE :ABORT T on superseding streams" Closing a stream opened with :IF-EXISTS :SUPERSEDE with :ABORT T leaves no file on disk, even if one existed before opening. @@ -1511,6 +1515,8 @@ WORKAROUND: 385: (format nil "~4,1F" 0.001) => "0.00" (should be " 0.0"); (format nil "~4,1@F" 0.001) => "+.00" (should be "+0.0"). + (format nil "~E" 0.01) => "10.e-3" (should be "1.e-2"); + (format nil "~G" 0.01) => "10.e-3" (should be "1.e-2"); 386: SunOS/x86 stack exhaustion handling broken According to , the @@ -1773,13 +1779,6 @@ WORKAROUND: implementation of read circularity, using a symbol as a marker for the previously-referenced object. -415: Issues creating large arrays on x86-64/Linux and x86/Darwin - - (make-array (1- array-dimension-limit)) - - causes a GC invariant violation on x86-64/Linux, and - an unhandled SIGILL on x86/Darwin. - 416: backtrace confusion (defun foo (x) diff --git a/src/code/early-array.lisp b/src/code/early-array.lisp index 9d1dba2..f11ec87 100644 --- a/src/code/early-array.lisp +++ b/src/code/early-array.lisp @@ -13,10 +13,11 @@ #!+sb-doc "the exclusive upper bound on the rank of an array") -(def!constant sb!xc:array-dimension-limit sb!xc:most-positive-fixnum +;;; - 2 to leave space for the array header +(def!constant sb!xc:array-dimension-limit (- sb!xc:most-positive-fixnum 2) #!+sb-doc "the exclusive upper bound on any given dimension of an array") -(def!constant sb!xc:array-total-size-limit sb!xc:most-positive-fixnum +(def!constant sb!xc:array-total-size-limit (- sb!xc:most-positive-fixnum 2) #!+sb-doc "the exclusive upper bound on the total number of elements in an array") diff --git a/version.lisp-expr b/version.lisp-expr index ff5b1fd..b55ef47 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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.20.26" +"1.0.20.27"