X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fprint-object.lisp;h=6a91b50c584671ac364bf0818ea4e414860d4ba2;hb=a92c91a4fdcdcf1c96b33339c1ef077243183187;hp=f3a896011a23a0be47013a248f43688782783643;hpb=13bb6d7a14d408cbf545968107fae797cd1cce77;p=sbcl.git diff --git a/src/pcl/print-object.lisp b/src/pcl/print-object.lisp index f3a8960..6a91b50 100644 --- a/src/pcl/print-object.lisp +++ b/src/pcl/print-object.lisp @@ -33,16 +33,21 @@ ;;; by the printer doing bootstrapping, and immediately replace it ;;; with some new printing logic, so that the Lisp printer stays ;;; crippled only for the shortest necessary time. +(/show0 "about to replace placeholder PRINT-OBJECT with DEFGENERIC") (let (;; (If we don't suppress /SHOW printing while the printer is ;; crippled here, it becomes really easy to crash the bootstrap ;; sequence by adding /SHOW statements e.g. to the compiler, ;; which kinda defeats the purpose of /SHOW being a harmless ;; tracing-style statement.) - #+sb-show (*/show* nil)) + #+sb-show (*/show* nil) + ;; (another workaround for the problem of debugging while the + ;; printer is disabled here) + (sb-impl::*print-object-is-disabled-p* t)) (fmakunbound 'print-object) (defgeneric print-object (object stream)) (defmethod print-object ((x t) stream) (print-unreadable-object (x stream :type t :identity t)))) +(/show0 "done replacing placeholder PRINT-OBJECT with DEFGENERIC") ;;;; a hook called by the printer to take care of dispatching to PRINT-OBJECT ;;;; for appropriate FUNCALLABLE-INSTANCE objects @@ -117,17 +122,10 @@ (list (length (generic-function-methods generic-function))) "?"))) -(defmethod print-object ((constructor constructor) stream) - (print-unreadable-object (constructor stream :type t :identity t) - (format stream - "~S (~S)" - (slot-value-or-default constructor 'name) - (slot-value-or-default constructor 'code-type)))) - (defmethod print-object ((cache cache) stream) (print-unreadable-object (cache stream :type t :identity t) (format stream - "~D ~S ~D" + "~W ~S ~W" (cache-nkeys cache) (cache-valuep cache) (cache-nlines cache))))