From: Christophe Rhodes Date: Wed, 26 Jun 2002 14:11:27 +0000 (+0000) Subject: 0.7.5.2: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=7c864061be7f43f15249580f1e3fb7cac861c784;p=sbcl.git 0.7.5.2: Minor array performance tweak ... return the known-boxed value from the full-call HAIRY-DATA-VECTOR-SET --- diff --git a/BUGS b/BUGS index 456c7fd..db74388 100644 --- a/BUGS +++ b/BUGS @@ -1368,6 +1368,14 @@ WORKAROUND: * (/ 1 (/ 3 2) 0) 1/0 +185: "top-level forms at the REPL" + * (locally (defstruct foo (a 0 :type fixnum))) + gives an error: + ; caught ERROR: + ; (in macroexpansion of (SB-KERNEL::%DELAYED-GET-COMPILER-LAYOUT BAR)) + however, compiling and loading the same expression in a file works + as expected. + DEFUNCT CATEGORIES OF BUGS IR1-#: diff --git a/src/code/array.lisp b/src/code/array.lisp index 0770723..ddfa44c 100644 --- a/src/code/array.lisp +++ b/src/code/array.lisp @@ -330,7 +330,7 @@ (defun hairy-data-vector-set (array index new-value) (with-array-data ((vector array) (index index) (end)) - (declare (ignore end) (optimize)) + (declare (ignore end)) (etypecase vector . #.(mapcar (lambda (type) (let ((atype `(simple-array ,type (*)))) @@ -338,7 +338,13 @@ (data-vector-set (the ,atype vector) index (the ,type - new-value))))) + new-value)) + ;; For specialized arrays, the return + ;; from data-vector-set would have to + ;; be reboxed to be a (Lisp) return + ;; value; instead, we use the + ;; already-boxed value as the return. + new-value))) *specialized-array-element-types*)))) (defun %array-row-major-index (array subscripts diff --git a/version.lisp-expr b/version.lisp-expr index 1eb9075..10e4042 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.5.1" +"0.7.5.2"