0.8.19.33: fix inspection of specialized arrays
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 20 Feb 2005 12:04:44 +0000 (12:04 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 20 Feb 2005 12:04:44 +0000 (12:04 +0000)
           Patch by Simon Alexander on sbcl-devel 2005-02-19.

           Note to self: it seems that we don't currently have
           _any_ tests for the inspector. Make it not so, someday
           soon for preference.

NEWS
contrib/sb-aclrepl/inspect.lisp
src/code/inspect.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 77c9937..8c3e23a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
 changes in sbcl-0.8.20 (0.9alpha.0?) relative to sbcl-0.8.19:
+  * fixed inspection of specialized arrays. (thanks to Simon Alexander)
   * fixed disassembly of SHLD and SHRD on x86.  (thanks to David
     Lichteblau)
   * fixed loading of multiply forward-referenced layouts. 
index 8611d9d..c13f686 100644 (file)
@@ -759,8 +759,12 @@ cons cells and LIST-TYPE is :normal, :dotted, or :cyclic"
 (defun parts-seq-hint (parts)
   (fourth parts))
 
-(defgeneric inspected-parts (object)
-  )
+;;; FIXME: Most of this should be refactored to share the code
+;;; with the vanilla inspector. Also, we should check what the
+;;; Slime inspector does, and provide a an interface for it to
+;;; use that would propagate any SBCL inspector improvements
+;;; automagically to Slime. -- ns 2005-02-20
+(defgeneric inspected-parts (object))
 
 (defmethod inspected-parts ((object symbol))
   (let ((components
@@ -825,7 +829,9 @@ cons cells and LIST-TYPE is :normal, :dotted, or :cyclic"
 
 (defmethod inspected-parts ((object array))
   (let ((size (array-total-size object)))
-    (list (make-array size :displaced-to object)
+    (list (make-array size 
+                      :element-type (array-element-type object)
+                     :displaced-to object)
            size
            :array
            (reverse (array-dimensions object)))))
index 43faa94..15710ca 100644 (file)
@@ -247,7 +247,9 @@ evaluated expressions.
 
 (defmethod inspected-parts ((object array))
   (let* ((length (min (array-total-size object) *inspect-length*))
-        (reference-array (make-array length :displaced-to object))
+        (reference-array (make-array length 
+                                     :element-type (array-element-type object)
+                                     :displaced-to object))
         (dimensions (array-dimensions object))
         (reversed-elements nil))
     ;; FIXME: Should we respect *INSPECT-LENGTH* here? If not, what does
index 8ad368f..a53bf94 100644 (file)
@@ -17,4 +17,5 @@
 ;;; 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.19.32"
+"0.8.19.33"
+