0.7.5.2:
authorChristophe Rhodes <csr21@cam.ac.uk>
Wed, 26 Jun 2002 14:11:27 +0000 (14:11 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Wed, 26 Jun 2002 14:11:27 +0000 (14:11 +0000)
Minor array performance tweak
... return the known-boxed value from the full-call
HAIRY-DATA-VECTOR-SET

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

diff --git a/BUGS b/BUGS
index 456c7fd..db74388 100644 (file)
--- 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-#:
index 0770723..ddfa44c 100644 (file)
 
 (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 (*))))
                               (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
index 1eb9075..10e4042 100644 (file)
@@ -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"