X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fdump.lisp;h=4946783e1f80fa6a2868a715b9db5dee5603fb5e;hb=d40a76606c86722b0aef8179155f9f2840739b72;hp=c8d880d3e39b03fc7d2112d1c67ebe2986d38fb2;hpb=5ec8d0c1c8b7939818b75118b472fac1af554f9a;p=sbcl.git diff --git a/src/compiler/dump.lisp b/src/compiler/dump.lisp index c8d880d..4946783 100644 --- a/src/compiler/dump.lisp +++ b/src/compiler/dump.lisp @@ -43,11 +43,11 @@ ;; an alist (PACKAGE . OFFSET) of the table offsets for each package ;; we have currently located. (packages () :type list) - ;; a table mapping from the Entry-Info structures for dumped XEPs to + ;; a table mapping from the ENTRY-INFO structures for dumped XEPs to ;; the table offsets of the corresponding code pointers (entry-table (make-hash-table :test 'eq) :type hash-table) ;; a table holding back-patching info for forward references to XEPs. - ;; The key is the Entry-Info structure for the XEP, and the value is + ;; The key is the ENTRY-INFO structure for the XEP, and the value is ;; a list of conses ( . ), where ;; is the offset in the table of the code object needing to be ;; patched, and is the offset that must be patched. @@ -898,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)) @@ -994,9 +994,9 @@ ;; far as I know no modern CMU CL does either -- WHN ;; 2001-10-05). So might we be able to get rid of trace tables? - ;; Dump the constants, noting any :entries that have to be fixed up. - (do ((i sb!vm:code-constants-offset (1+ i))) - ((>= i header-length)) + ;; Dump the constants, noting any :ENTRY constants that have to + ;; be patched. + (loop for i from sb!vm:code-constants-offset below header-length do (let ((entry (aref constants i))) (etypecase entry (constant @@ -1008,6 +1008,7 @@ (handle (gethash info (fasl-output-entry-table fasl-output)))) + (declare (type sb!c::entry-info info)) (cond (handle (dump-push handle fasl-output)) @@ -1051,6 +1052,7 @@ (dump-fixups fixups fasl-output) (dump-fop 'fop-sanctify-for-execution fasl-output) + (let ((handle (dump-pop fasl-output))) (dolist (patch (patches)) (push (cons handle (cdr patch)) @@ -1084,7 +1086,7 @@ (dump-object name file) (dump-object (sb!c::entry-info-arguments entry) file) (dump-object (sb!c::entry-info-type entry) file) - (dump-fop 'fop-function-entry file) + (dump-fop 'fop-fun-entry file) (dump-unsigned-32 (label-position (sb!c::entry-info-offset entry)) file) (dump-pop file)))