From 53a7501acfbb615bae72b43e3e9a95b9965592ce Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Sat, 12 Oct 2002 18:12:34 +0000 Subject: [PATCH] 0.7.8.33: Allow dumping of non-SIMPLE-ARRAY vectors (bug report from cmucl-help saved at Entomotomy under the name dumping-of-non-simple-vectors-fails) (thanks to Pierre Mai for discussion) --- src/compiler/dump.lisp | 4 +++- tests/dump.impure-cload.lisp | 7 +++++++ version.lisp-expr | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/compiler/dump.lisp b/src/compiler/dump.lisp index 9e50e68..4e1255a 100644 --- a/src/compiler/dump.lisp +++ b/src/compiler/dump.lisp @@ -709,7 +709,9 @@ ;;; tables. (defun dump-vector (x file) (let ((simple-version (if (array-header-p x) - (coerce x 'simple-array) + (coerce x `(simple-array + ,(array-element-type x) + (*))) x))) (typecase simple-version (simple-base-string diff --git a/tests/dump.impure-cload.lisp b/tests/dump.impure-cload.lisp index 5a468f2..6017d0b 100644 --- a/tests/dump.impure-cload.lisp +++ b/tests/dump.impure-cload.lisp @@ -59,4 +59,11 @@ (defparameter *path* #p"MY-LOGICAL-HOST:FOO;BAR.LISP") +;;; Non-SIMPLE-ARRAY VECTORs should be dumpable, though they can lose +;;; their complex attributes. + +(defparameter *string* #.(make-array 3 :initial-element #\a + :fill-pointer 2 + :element-type 'character)) + (sb-ext:quit :unix-status 104) ; success diff --git a/version.lisp-expr b/version.lisp-expr index f5d70ac..c394e89 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; internal versions off the main CVS branch, it gets hairier, e.g. ;;; "0.pre7.14.flaky4.13".) -"0.7.8.32" +"0.7.8.33" -- 1.7.10.4