X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fprint-object.lisp;h=6a91b50c584671ac364bf0818ea4e414860d4ba2;hb=22aec7852f4861e5dab28cc0d619c24b62590dad;hp=5dd716256bc9da1825ba62e4c442d176a8c9debb;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/pcl/print-object.lisp b/src/pcl/print-object.lisp index 5dd7162..6a91b50 100644 --- a/src/pcl/print-object.lisp +++ b/src/pcl/print-object.lisp @@ -29,20 +29,25 @@ ;;;; the PRINT-OBJECT generic function -;;; Blow away the old non-generic function placeholder which was used 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. +;;; Blow away the old non-generic function placeholder which was used +;;; 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 (sb-int:*/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))))