anchor.diff:              *initial-obarray* *initial-keyword-obarray*
               *initial-setf-obarray* *initial-structure-obarray*
               *newspace-offset* *semispace-size* *newspace*
  -            *static-bump-pointer* *static-area-size* *static-mark-bit*))
  +            *static-bump-pointer* *static-area-size* *static-mark-bit*
  +            *area-info*))
  +    (mapc (lambda (area) (symbol-address (string (first area)) nil)) *initial-areas*)
       (generate-obarray *symbol-table* '*initial-obarray*)
       (generate-obarray *keyword-table* '*initial-keyword-obarray*)
       (generate-obarray *setf-table* '*initial-setf-obarray*)
  
positive.code:   (genesis::genesis-eval (list (genesis::genesis-intern "SAVE-COMPILER-BUILTINS") "%%compiler-builtins.llf"))
    (load-source-file "%%compiler-builtins.llf"))
  
  (defun make-image (image-name &optional description extra-source-files)
    (let ((*area-info* (create-area-info *initial-areas*))
          (*pending-fixups* '())
  
negative.code:                 (file-position s))
          (write-sequence (third area) s :end (* len #x40000 8))))))
  
  (defun total-image-size ()
    (iter (for area in *area-info*)
          (sum (* (+ (ceiling (first area) #x40000)
                     (if (or (eql (first (fifth area)) 'runtime-allocation-area)
                             (eql (first (fifth area)) 'function-area))
                         1
                         0))
                  #x40000))))
  
  (defun array-header (tag length)
    (logior (ash tag 1)
            (ash length 8)))
  