-/nick;;;; Inspector for sb-aclrepl
+;;;; Inspector for sb-aclrepl
;;;;
;;;; The documentation, which may or may not apply in its entirety at
;;;; any given time, for this functionality is on the ACL website:
(defun inspector-fun (object input-stream output-stream)
- (declare (ignore input-stream))
(let ((*current-inspect* nil)
(*inspect-raw* nil)
(*inspect-length* *inspect-length*)
(*skip-address-display* nil))
- (setq object (eval object))
(setq *current-inspect* (make-inspect))
(reset-stack object "(inspect ...)")
(redisplay output-stream)
cons cells and LIST-TYPE is :normal, :dotted, or :cyclic"
(do ((length 1 (1+ length))
(lst (cdr object) (cdr lst)))
- ((or (not(consp lst))
+ ((or (not (consp lst))
(eq object lst))
(cond
((null lst)
(multiple-value-bind (length list-type) (cons-safe-length object)
(format nil "a ~A list with ~D element~:*~P~A"
(string-downcase (symbol-name list-type)) length
- (case list-type
+ (ecase list-type
((:dotted :cyclic) "+tail")
- (t "")))))
-
+ (:normal "")))))
(defun ref32-hexstr (obj &optional (offset 0))
(format nil "~8,'0X" (ref32 obj offset)))
(list components (length components) :named nil)))
(defmethod inspected-parts ((object sb-kernel:funcallable-instance))
- (let ((components (inspected-structure-parts object)))
+ (let ((components (inspected-standard-object-parts object)))
+ (list components (length components) :named nil)))
+
+(defmethod inspected-parts ((object condition))
+ (let ((components (inspected-standard-object-parts object)))
(list components (length components) :named nil)))
(defmethod inspected-parts ((object function))