0.8.14.6:
authorNathan Froyd <froydnj@cs.rice.edu>
Thu, 9 Sep 2004 20:50:11 +0000 (20:50 +0000)
committerNathan Froyd <froydnj@cs.rice.edu>
Thu, 9 Sep 2004 20:50:11 +0000 (20:50 +0000)
Oops.  Fix dumping of specialized arrays whose elements are
  smaller than a single byte.

Now with added tests!  Passes all tests.

src/compiler/dump.lisp
tests/dump.impure-cload.lisp
version.lisp-expr

index ed4c7b1..2609d28 100644 (file)
        ((simple-array nil (*))
         (dump-unsigned-vector 0 0))
        (simple-bit-vector
-        (dump-unsigned-vector 1 (ceiling len 8)))
+        (dump-unsigned-vector 1 (ceiling len 8))) ; bits to bytes
        ;; KLUDGE: This isn't the best way of expressing that the host
        ;; may not have specializations for (unsigned-byte 2) and
        ;; (unsigned-byte 4), which means that these types are
        ;; CSR, 2002-05-07
        #-sb-xc-host
        ((simple-array (unsigned-byte 2) (*))
-        (dump-unsigned-vector 2 (ceiling len 8)))
+        (dump-unsigned-vector 2 (ceiling (ash len 1) 8))) ; bits to bytes
        #-sb-xc-host
        ((simple-array (unsigned-byte 4) (*))
-        (dump-unsigned-vector 4 (ceiling len 8)))
+        (dump-unsigned-vector 4 (ceiling (ash len 2) 8))) ; bits to bytes
        #-sb-xc-host
        ((simple-array (unsigned-byte 7) (*))
         (dump-unsigned-vector 7 len))
index 2b1ad11..f4def0c 100644 (file)
 (assert (eql (savable-structure-d *savable-structure*) 39))
 (assert (eql (savable-structure-e *savable-structure*) 19))
 \f
+;;; ensure that we can dump and reload specialized arrays whose element
+;;; size is smaller than a byte (caused a few problems circa SBCL
+;;; 0.8.14.4)
+
+(defvar *1-bit* (make-array 5 :element-type 'bit :initial-element 0))
+(defvar *2-bit* (make-array 5 :element-type '(unsigned-byte 2) :initial-element 0))
+(defvar *4-bit* (make-array 5 :element-type '(unsigned-byte 4) :initial-element 1))
+\f
 (sb-ext:quit :unix-status 104) ; success
index e16c51c..cc36f22 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".)
-"0.8.14.5"
+"0.8.14.6"