anchor.diff:          ret)))
   
   (defvar *downloaded-asdf-loaded* nil)
  -(defun asdf ()
  -  (unless *downloaded-asdf-loaded*
  -    (let* ((version-installed (opt "asdf.version"))
  -           (version (or version-installed
  -                        (progn (roswell '("ros" "asdf" "install"))
  -                               (roswell '("config" "show" "asdf.version") :string t)))))
  -      (when (equal version "NIL")
  -        (error "asdf download error?"))
  -      (cl:load (merge-pathnames (format nil "lisp/asdf/~A/asdf.lisp" version) (opt "homedir")))))
  -  (setf *downloaded-asdf-loaded* t))
  +(defun asdf (&key no-download)
  +  (setf *downloaded-asdf-loaded*
  +        (or *downloaded-asdf-loaded*
  +            (let* ((version-installed (opt "asdf.version"))
  +                   (version (or version-installed
  +                                (unless no-download
  +                                  (roswell '("ros" "asdf" "install"))
  +                                  (roswell '("config" "show" "asdf.version") :string t))))
  +                   (path (merge-pathnames (format nil "lisp/asdf/~A/asdf.lisp" version) (opt "homedir"))))
  +              (when (equal version "NIL")
  +                (error "asdf download error?"))
  +              (when (probe-file path)
  +                (ignore-errors
  +                  (locally
  +                      (declare #+sbcl(sb-ext:muffle-conditions sb-kernel:redefinition-warning))
  +                    (handler-bind
  +                        (#+sbcl(sb-kernel:redefinition-warning #'muffle-warning))
  +                      (cl:load path)))))))))
   
   (let ((symbol (ignore-errors (read-from-string "asdf::*user-cache*")))
         (impl (substitute #\- #\/ (opt "impl"))))
  
positive.code:                          (not (equal (opt "asdf")
                                       (funcall (read-from-string "asdf:asdf-version")))))
                      (not (find :asdf *features*))))
         (let ((path (merge-pathnames (format nil "lisp/asdf/~A/asdf.lisp" (opt "asdf"))
                                      (opt "homedir"))))
           (when (probe-file path)
             (ignore-errors
               (locally
                   (declare #+sbcl(sb-ext:muffle-conditions sb-kernel:redefinition-warning))
                 (handler-bind
                     (#+sbcl(sb-kernel:redefinition-warning #'muffle-warning))
                   (cl:load path)))))))
       (find :asdf *features*)
       (ignore-errors (require "asdf")))))
  
  
negative.code:                                (opt "quicklisp")))))
        (when (probe-file path)
          (cl:load path)
          (let ((symbol (read-from-string "ql:*local-project-directories*"))
                (path (merge-pathnames "local-projects/" (opt "homedir"))))
            (when (or (ignore-errors (probe-file path))
                      #+clisp(ext:probe-directory path))
              (set symbol (cons path (symbol-value symbol)))))
          t))))
  
  (defvar *included-names* '())
  