anchor.diff:  ;;; GC Meters.
   (defvar *objects-copied* 0)
   (defvar *words-copied* 0)
  +(defvar *gc-transport-counts* (make-array 64 :area :pinned :initial-element 0))
  +(defvar *gc-transport-cycles* (make-array 64 :area :pinned :initial-element 0))
   
   (defvar *gc-in-progress* nil)
   
  
positive.code: (defun transport-object (object)
    "Transport LENGTH words from oldspace to newspace, returning
  a pointer to the new object. Leaves a forwarding pointer in place."
    (let* ((length nil)
           (address (ash (%pointer-field object) 4))
           (first-word (memref-t address 0))
           (new-address nil))
  
negative.code: 
  (defvar *gc-epoch* 0)
  (defvar *gc-time* 0.0 "Time in seconds taken by the GC so far.")
  
  (defun gc-reset-stats ()
    (setf *words-copied* 0
          *objects-copied* 0)
    (fill *gc-transport-counts* 0)
    (fill *gc-transport-cycles* 0))
  
  (defun gc-stats ()
    (format t "Spent ~:D seconds in the GC.~%" *gc-time*)
    (format t "  Copied ~:D objects, ~:D words.~%" *objects-copied* *words-copied*)
    (format t "Transport stats:~%")
    (dotimes (i (min (length *gc-transport-cycles*)
                     (length *gc-transport-counts*)))
      (when (not (zerop (aref *gc-transport-counts* i)))
        (format t "  ~:D: ~:D objects, ~:D cycles.~%"
                (expt 2 i)
                (aref *gc-transport-counts* i)
                (aref *gc-transport-cycles* i)))))
  
  (defun gc ()
    "Run a garbage-collection cycle."
  