anchor.diff:                                                   (>= (sourceblock-size a)
                                                        (sourceblock-size b))))))
   
  -(defun assemble-parsed-files-0 (out-name dump-name x &key (unassigned-segment-blocks nil))
  +(defun assemble-parsed-files-0 (out-name dump-name x &key (unassigned-segment-blocks nil)
  +                                                          (segments (make-queue)))
     (clear-labels)
     (= *pass* 0)
     (while (| *label-changed?*
  
positive.code:     (format t "Assembling again to assign BLOCKs to SEGMENTS…~%")
      (sort-unassigned-segment-blocks)
      (with-temporary *assign-blocks-to-segments?* t
        (assemble-parsed-files-0 out-name dump-name x :unassigned-segment-blocks !))))
  
  (defun check-on-unassigned-blocks ()
    (awhen *unassigned-segment-blocks*
  
negative.code: 
  (defvar *sourceblock-stack* nil)
  
  (defstruct segment
    size
    (may-be-shorter? nil)
    (sourceblocks nil))
  
  (defvar *segments* nil)
  (defvar *unassigned-segment-blocks* nil)
  (defvar *assign-blocks-to-segments?* nil)
  
  