X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flate-extensions.lisp;h=4d0e08bbb715ef145092b12d735dd6753164b591;hb=71766d9db05e93567cb7e829abfc675c3cb895c9;hp=4b71114f62ce670d525de01e87fdf35d6be16efe;hpb=c41d75f1d2defd6234e644ef2b40440a5d1526c5;p=sbcl.git diff --git a/src/code/late-extensions.lisp b/src/code/late-extensions.lisp index 4b71114..4d0e08b 100644 --- a/src/code/late-extensions.lisp +++ b/src/code/late-extensions.lisp @@ -20,12 +20,12 @@ (defun list-with-length-p (x) (values (ignore-errors (list-length x)))) -;;; not used in 0.7.8, but possibly useful for defensive programming +;;; not used in 0.7.8, but possibly useful for defensive programming ;;; in e.g. (COERCE ... 'VECTOR) ;;;(defun list-length-or-die (x) ;;; (or (list-length x) ;;; ;; not clear how to do this best: -;;; ;; * Should this be a TYPE-ERROR? Colloquially that'd make +;;; ;; * Should this be a TYPE-ERROR? Colloquially that'd make ;;; ;; lots of sense, but since I'm not sure how to express ;;; ;; "noncircular list" as a Lisp type expression, coding ;;; ;; it seems awkward. @@ -35,3 +35,13 @@ ;;; ;; be doing him a favor by printing the object here. ;;; ;; -- WHN 2002-10-19 ;;; (error "can't calculate length of cyclic list"))) + +;;; This is used in constructing arg lists for debugger printing, +;;; and when needing to print unbound slots in PCL. +(defstruct (unprintable-object + (:constructor make-unprintable-object (string)) + (:print-object (lambda (x s) + (print-unreadable-object (x s) + (write-string (unprintable-object-string x) s)))) + (:copier nil)) + string)