X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Finspect.lisp;h=f143295fd155b0e257bb32141a4eb6af19689401;hb=0e5e8dc759b478bf9ef55d45d80604c24faea2ae;hp=71a07612059445bed646d0e73abdf3d3586fb8ae;hpb=e27303999070c06c788a0e1359ee4b0900186aa1;p=sbcl.git diff --git a/src/code/inspect.lisp b/src/code/inspect.lisp index 71a0761..f143295 100644 --- a/src/code/inspect.lisp +++ b/src/code/inspect.lisp @@ -11,8 +11,6 @@ (in-package "SB-IMPL") ;(SB-IMPL, not SB!IMPL, since we're built in warm load.) -(declaim #.*optimize-byte-compilation*) - (defparameter *inspect-length* 10) ;;; When *INSPECT-UNBOUND-OBJECT-MARKER* occurs in a parts list, it @@ -20,7 +18,6 @@ (defvar *inspect-unbound-object-marker* (gensym "INSPECT-UNBOUND-OBJECT-")) (defun inspect (object) - (declare #.*optimize-external-despite-byte-compilation*) (catch 'quit-inspect (%inspect object *standard-output*)) (values)) @@ -44,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) @@ -60,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))) @@ -78,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)) @@ -197,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. @@ -212,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)) @@ -229,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*))