Skip to content
Snippets Groups Projects
Commit f2caf8a2 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Replace a trivial if-let by or.

parent c713e0a0
No related branches found
No related tags found
No related merge requests found
...@@ -386,38 +386,37 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded. ...@@ -386,38 +386,37 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded.
(let ((primary-name (primary-system-name name))) (let ((primary-name (primary-system-name name)))
(unless (equal name primary-name) (unless (equal name primary-name)
(find-system primary-name nil))) (find-system primary-name nil)))
(if-let (x (and *immutable-systems* (gethash name *immutable-systems*) (or (and *immutable-systems* (gethash name *immutable-systems*)
(cdr (system-registered-p name)))) (cdr (system-registered-p name)))
x (multiple-value-bind (foundp found-system pathname previous previous-time)
(multiple-value-bind (foundp found-system pathname previous previous-time) (locate-system name)
(locate-system name) (assert (eq foundp (and (or found-system pathname previous) t)))
(assert (eq foundp (and (or found-system pathname previous) t))) (let ((previous-pathname (and previous (system-source-file previous)))
(let ((previous-pathname (and previous (system-source-file previous))) (system (or previous found-system)))
(system (or previous found-system))) (when (and found-system (not previous))
(when (and found-system (not previous)) (register-system found-system))
(register-system found-system)) (when (and system pathname)
(when (and system pathname) (setf (system-source-file system) pathname))
(setf (system-source-file system) pathname)) (when (and pathname
(when (and pathname (let ((stamp (get-file-stamp pathname)))
(let ((stamp (get-file-stamp pathname))) (and stamp
(and stamp (not (and previous
(not (and previous (or (pathname-equal pathname previous-pathname)
(or (pathname-equal pathname previous-pathname) (and pathname previous-pathname
(and pathname previous-pathname (pathname-equal
(pathname-equal (physicalize-pathname pathname)
(physicalize-pathname pathname) (physicalize-pathname previous-pathname))))
(physicalize-pathname previous-pathname)))) (stamp<= stamp previous-time))))))
(stamp<= stamp previous-time)))))) ;; only load when it's a pathname that is different or has newer content, and not an old asdf
;; only load when it's a pathname that is different or has newer content, and not an old asdf (load-asd pathname :name name)))
(load-asd pathname :name name))) (let ((in-memory (system-registered-p name))) ; try again after loading from disk if needed
(let ((in-memory (system-registered-p name))) ; try again after loading from disk if needed (cond
(cond (in-memory
(in-memory (when pathname
(when pathname (setf (car in-memory) (get-file-stamp pathname)))
(setf (car in-memory) (get-file-stamp pathname))) (cdr in-memory))
(cdr in-memory)) (error-p
(error-p (error 'missing-component :requires name))
(error 'missing-component :requires name)) (t ;; not found: don't keep negative cache, see lp#1335323
(t ;; not found: don't keep negative cache, see lp#1335323 (unset-asdf-cache-entry `(locate-system ,name))
(unset-asdf-cache-entry `(locate-system ,name)) (return-from find-system nil)))))))))
(return-from find-system nil)))))))))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment