1.0.20.27: fixed bug 415
authorGabor Melis <mega@hotpop.com>
Tue, 23 Sep 2008 21:52:57 +0000 (21:52 +0000)
committerGabor Melis <mega@hotpop.com>
Tue, 23 Sep 2008 21:52:57 +0000 (21:52 +0000)
  * (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

BUGS
src/code/early-array.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index ebccf55..dd4c15b 100644 (file)
--- 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 <http://alfa.s145.xrea.com/sbcl/solaris-x86.html>, 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)
index 9d1dba2..f11ec87 100644 (file)
   #!+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")
index ff5b1fd..b55ef47 100644 (file)
@@ -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"