X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fdump.lisp;h=bb1aacf11dbf13597f1c25e7d1b0db71e3c713c5;hb=c1aeac123df223746249567a9c0d2f656d1222cb;hp=e81d3816fbda4fe16f75d601303ff83092989e84;hpb=dec94b039e8ec90baf21463df839a6181de606f6;p=sbcl.git diff --git a/src/compiler/dump.lisp b/src/compiler/dump.lisp index e81d381..bb1aacf 100644 --- a/src/compiler/dump.lisp +++ b/src/compiler/dump.lisp @@ -28,7 +28,7 @@ s)))) (:copier nil)) ;; the stream we dump to - (stream (required-argument) :type stream) + (stream (missing-arg) :type stream) ;; hashtables we use to keep track of dumped constants so that we ;; can get them from the table rather than dumping them again. The ;; EQUAL-TABLE is used for lists and strings, and the EQ-TABLE is @@ -72,11 +72,11 @@ ;;; This structure holds information about a circularity. (defstruct (circularity (:copier nil)) ;; the kind of modification to make to create circularity - (type (required-argument) :type (member :rplaca :rplacd :svset :struct-set)) + (type (missing-arg) :type (member :rplaca :rplacd :svset :struct-set)) ;; the object containing circularity object ;; index in object for circularity - (index (required-argument) :type index) + (index (missing-arg) :type index) ;; the object to be stored at INDEX in OBJECT. This is that the key ;; that we were using when we discovered the circularity. value @@ -86,7 +86,7 @@ enclosing-object) ;;; a list of the CIRCULARITY structures for all of the circularities -;;; detected in the current top-level call to DUMP-OBJECT. Setting +;;; detected in the current top level call to DUMP-OBJECT. Setting ;;; this lobotomizes circularity detection as well, since circular ;;; dumping uses the table. (defvar *circularities-detected*) @@ -338,7 +338,7 @@ ;; take a little more care while dumping these. ;; So if better list coalescing is needed, start here. ;; -- WHN 2000-11-07 - (if (circular-list-p x) + (if (cyclic-list-p x) (progn (dump-list x file) (eq-save-object x file)) @@ -380,7 +380,7 @@ ;;; ;;; This is the function used for recursive calls to the fasl dumper. ;;; We don't worry about creating circularities here, since it is -;;; assumed that there is a top-level call to DUMP-OBJECT. +;;; assumed that there is a top level call to DUMP-OBJECT. (defun sub-dump-object (x file) (cond ((listp x) (if x @@ -431,10 +431,7 @@ ;;; We peek at the object type so that we only pay the circular ;;; detection overhead on types of objects that might be circular. (defun dump-object (x file) - (if (or (array-header-p x) - (simple-vector-p x) - (consp x) - (typep x 'instance)) + (if (compound-object-p x) (let ((*circularities-detected* ()) (circ (fasl-output-circularity-table file))) (clrhash circ) @@ -901,7 +898,7 @@ ;; argument and the number of bytes actually written. I added this ;; assertion while trying to debug portable genesis. -- WHN 19990902 (unless (= code-length nwritten) - (error "internal error, code-length=~D, nwritten=~D" + (error "internal error, code-length=~W, nwritten=~W" code-length nwritten))) (values)) @@ -1133,12 +1130,7 @@ (dolist (entry (sb!c::ir2-component-entries 2comp)) (let ((entry-handle (dump-one-entry entry code-handle file))) (setf (gethash entry (fasl-output-entry-table file)) entry-handle) - (let ((old (gethash entry (fasl-output-patch-table file)))) - ;; FIXME: All this code is shared with - ;; FASL-DUMP-BYTE-COMPONENT, and should probably be gathered - ;; up into a named function (DUMP-PATCHES?) called from both - ;; functions. (when old (dolist (patch old) (dump-alter-code-object (car patch) @@ -1156,9 +1148,9 @@ (dump-push handle fasl-output)) (values)) -;;; Dump a FOP-FUNCALL to call an already-dumped top-level lambda at +;;; Dump a FOP-FUNCALL to call an already-dumped top level lambda at ;;; load time. -(defun fasl-dump-top-level-lambda-call (fun fasl-output) +(defun fasl-dump-toplevel-lambda-call (fun fasl-output) (declare (type sb!c::clambda fun)) (dump-push-previously-dumped-fun fun fasl-output) (dump-fop 'fop-funcall-for-effect fasl-output) @@ -1171,7 +1163,7 @@ #+sb-xc-host (defun fasl-dump-cold-fset (fun-name fun-dump-handle fasl-output) (declare (type fixnum fun-dump-handle)) - (aver (legal-function-name-p fun-name)) + (aver (legal-fun-name-p fun-name)) (dump-non-immediate-object fun-name fasl-output) (dump-push fun-dump-handle fasl-output) (dump-fop 'fop-fset fasl-output)