Commit c713e0a0 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Remove loop and restart-case from find-system;

the functionality was moved to call-with-asdf-cache before where it belongs.
parent 00256418
Loading
Loading
Loading
Loading
+56 −59
Original line number Diff line number Diff line
@@ -386,14 +386,11 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded.
      (let ((primary-name (primary-system-name name)))
        (unless (equal name primary-name)
          (find-system primary-name nil)))
      (loop
        (restart-case
      (if-let (x (and *immutable-systems* (gethash name *immutable-systems*)
                      (cdr (system-registered-p name))))
        x
        (multiple-value-bind (foundp found-system pathname previous previous-time)
            (locate-system name)
              (when (and found-system (eq found-system previous)
                         (or (first (gethash `(find-system ,name) *asdf-cache*))
                             (and *immutable-systems* (gethash name *immutable-systems*))))
                (return found-system))
          (assert (eq foundp (and (or found-system pathname previous) t)))
          (let ((previous-pathname (and previous (system-source-file previous)))
                (system (or previous found-system)))
@@ -414,7 +411,6 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded.
              ;; only load when it's a pathname that is different or has newer content, and not an old asdf
              (load-asd pathname :name name)))
          (let ((in-memory (system-registered-p name))) ; try again after loading from disk if needed
                (return
            (cond
              (in-memory
               (when pathname
@@ -422,5 +418,6 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded.
               (cdr in-memory))
              (error-p
               (error 'missing-component :requires name))
                    (t
                     (return-from find-system nil)))))))))))
              (t ;; not found: don't keep negative cache, see lp#1335323
               (unset-asdf-cache-entry `(locate-system ,name))
               (return-from find-system nil)))))))))