X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Finspect.lisp;h=f143295fd155b0e257bb32141a4eb6af19689401;hb=8d021a02be794dee4802e64701bab8a5b1ae3c55;hp=db51e0f7eb3866953fbf5c64a2b32345c4b45706;hpb=dec94b039e8ec90baf21463df839a6181de606f6;p=sbcl.git diff --git a/src/code/inspect.lisp b/src/code/inspect.lisp index db51e0f..f143295 100644 --- a/src/code/inspect.lisp +++ b/src/code/inspect.lisp @@ -41,7 +41,7 @@ evaluated expressions. ") (defun %inspect (*inspected* s) - (named-let redisplay () ; "lambda, the ultimate GOTO":-| + (named-let redisplay () ; "LAMBDA, the ultimate GOTO":-| (multiple-value-bind (description named-p elements) (inspected-parts *inspected*) (tty-display-inspected-parts description named-p elements s) @@ -57,6 +57,7 @@ evaluated expressions. ;; thing to do (as opposed to e.g. handling it as U), we ;; could document it. Meanwhile, it seems more Unix-y to ;; do this than to signal an error. + (/show0 "THROWing QUIT-INSPECT for EOF") (throw 'quit-inspect nil)) (integer (let ((elements-length (length elements))) @@ -75,12 +76,13 @@ evaluated expressions. (format s "~%The object contains nothing to inspect.~%") (return-from %inspect (reread))) (t - (format s "~%Enter a valid index (~:[0-~D~;0~]).~%" + (format s "~%Enter a valid index (~:[0-~W~;0~]).~%" (= elements-length 1) (1- elements-length)) (return-from %inspect (reread)))))) (symbol (case (find-symbol (symbol-name command) *keyword-package*) ((:q :e) + (/show0 "THROWing QUIT-INSPECT for :Q or :E") (throw 'quit-inspect nil)) (:u (return-from %inspect)) @@ -194,12 +196,12 @@ evaluated expressions. (inspected-structure-elements object))) (defmethod inspected-parts ((object function)) - (let* ((type (sb-kernel:get-type object)) - (object (if (= type sb-vm:closure-header-type) - (sb-kernel:%closure-function object) + (let* ((type (sb-kernel:widetag-of object)) + (object (if (= type sb-vm:closure-header-widetag) + (sb-kernel:%closure-fun object) object))) (values (format nil "FUNCTION ~S.~@[~%Argument List: ~A~]." object - (sb-kernel:%function-arglist object) + (sb-kernel:%simple-fun-arglist object) ;; Defined-from stuff used to be here. Someone took ;; it out. FIXME: We should make it easy to get ;; to DESCRIBE from the inspector. @@ -209,7 +211,7 @@ evaluated expressions. (defmethod inspected-parts ((object vector)) (values (format nil - "The object is a ~:[~;displaced ~]VECTOR of length ~D.~%" + "The object is a ~:[~;displaced ~]VECTOR of length ~W.~%" (and (array-header-p object) (%array-displaced-p object)) (length object)) @@ -226,7 +228,7 @@ evaluated expressions. (multiple-value-bind (q r) (floor index dim) (setq index q) (push r list))) - (format nil "[~D~{,~D~}]" (car list) (cdr list))))) + (format nil "[~W~{,~W~}]" (car list) (cdr list))))) (defmethod inspected-parts ((object array)) (let* ((length (min (array-total-size object) *inspect-length*))