From c0ecc57ac26dd507cbc13f78cd210321c18f173f Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Sun, 20 Feb 2005 12:04:44 +0000 Subject: [PATCH] 0.8.19.33: fix inspection of specialized arrays 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 | 1 + contrib/sb-aclrepl/inspect.lisp | 12 +++++++++--- src/code/inspect.lisp | 4 +++- version.lisp-expr | 3 ++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 77c9937..8c3e23a 100644 --- 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. diff --git a/contrib/sb-aclrepl/inspect.lisp b/contrib/sb-aclrepl/inspect.lisp index 8611d9d..c13f686 100644 --- a/contrib/sb-aclrepl/inspect.lisp +++ b/contrib/sb-aclrepl/inspect.lisp @@ -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))))) diff --git a/src/code/inspect.lisp b/src/code/inspect.lisp index 43faa94..15710ca 100644 --- a/src/code/inspect.lisp +++ b/src/code/inspect.lisp @@ -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 diff --git a/version.lisp-expr b/version.lisp-expr index 8ad368f..a53bf94 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" + -- 1.7.10.4