0.pre7.127:
[sbcl.git] / src / compiler / dump.lisp
index c8d880d..4946783 100644 (file)
   ;; 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 (<code-handle> . <offset>), where <code-handle>
   ;; is the offset in the table of the code object needing to be
   ;; patched, and <offset> is the offset that must be patched.
     ;; 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))
       ;; 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
                       (handle (gethash info
                                        (fasl-output-entry-table
                                         fasl-output))))
+                 (declare (type sb!c::entry-info info))
                  (cond
                   (handle
                    (dump-push handle fasl-output))
       (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))
     (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)))