Loading find-system.lisp +56 −59 Original line number Diff line number Diff line Loading @@ -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))) Loading @@ -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 Loading @@ -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))))))))) Loading
find-system.lisp +56 −59 Original line number Diff line number Diff line Loading @@ -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))) Loading @@ -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 Loading @@ -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)))))))))