anchor.diff:                        (let ((fn (consume))
                               (offset (consume)))
                           (unless stop
  -                          (vector-push-extend (cons fn offset) call-stack)
  +                          (when (not (find (sys.int::function-name fn) ignore-functions
  +                                           :test #'equal))
  +                            (vector-push-extend (cons fn offset) call-stack))
                             (when (eql fn prune-function)
                               (setf stop t)))))
                        (t (return))))
  
positive.code:   wait-item
    call-stack)
  
  (defmacro with-profiling ((&whole options &key buffer-size path thread verbosity prune) &body body)
    "Profile BODY.
  :THREAD - Thread to sample.
            If NIL, then sample all threads.
  
negative.code: :PRUNE - When :THREAD is T, try to prune away stack frames above the WITH-PROFILING call."
    `(call-with-allocation-profiling (lambda () ,@body) ,@options))
  
  (defun call-with-allocation-profiling (function &key path (verbosity :report) (prune t) (ignore-functions *ignorable-function-names*))
    (let* ((raw-buffer (make-array 0 :adjustable t :fill-pointer 0))
           (results (let* ((mezzano.runtime::*allocation-profile* raw-buffer)
                           (mezzano.runtime::*enable-allocation-profiling* t))
                      (multiple-value-list (funcall function))))
           (profile-buffer (decode-profile-buffer raw-buffer (if prune #'call-with-allocation-profiling nil) ignore-functions)))
      (cond (path
             (save-profile path profile-buffer :verbosity verbosity)
             (values-list results))
  