anchor.diff:  If MAX is specified, then no more than max(1,MAX) components will be returned,
   starting the separation from the end, e.g. when called with arguments
    \"a.b.c.d.e\" :max 3 :separator \".\" it will return (\"a.b.c\" \"d\" \"e\")."
  -  (block nil
  +  (catch nil
       (let ((list nil) (words 0) (end (length string)))
         (flet ((separatorp (char) (find char separator))
  -             (done () (return (cons (subseq string 0 end) list))))
  +             (done () (throw nil (cons (subseq string 0 end) list))))
           (loop
             :for start = (if (and max (>= words (1- max)))
                              (done)
  
positive.code:                   operation c))
            (:error (error 'compile-failed :component c :operation operation))
            (:ignore nil)))
        (unless output
          (error 'compile-error :component c :operation operation)))))
  
  (defmethod output-files ((operation compile-op) (c cl-source-file))
    (declare (ignorable operation))
    (let ((p (lispize-pathname (component-pathname c))))
      #-broken-fasl-loader (list (compile-file-pathname p))
      #+broken-fasl-loader (list p)))
  
  (defmethod perform ((operation compile-op) (c static-file))
    (declare (ignorable operation c))
  
negative.code: 
  #+genera
  (unless (fboundp 'ensure-directories-exist)
    (defun* ensure-directories-exist (path)
      (fs:create-directories-recursively (pathname path))))
  
  (defun* absolute-pathname-p (pathspec)
    (and (typep pathspec '(or pathname string))
         (eq :absolute (car (pathname-directory (pathname pathspec))))))
  
  (defun* coerce-pathname (name &key type defaults)
    "coerce NAME into a PATHNAME.
  