(patch) trying to load a previously-defined system through a dangling symlink
Andreas Fuchs <[email protected]>
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <87u0hlzkdv.wl%[email protected]> |
Hi,
another mostly trivial fix to an oddity in ASDF. The following
explanation is of my own understanding of things. Don't beat me if I'm
wrong, but I'm certain the fix is correct. (-:
If one of your system definition files (e.g. "mcclim.asd") defines a
system (e.g. :clim-listener), and there is a link to another system
definition file defining that same system (e.g. "clim-listener.asd"),
and that link's target suddenly goes away, ASDF is confused. The user
then gets an error from a NIL argument to two-arg-<.
This patch fixes that problem:
--- orig/contrib/asdf/asdf.lisp
+++ mod/contrib/asdf/asdf.lisp
@@ -359,8 +359,9 @@
(defun find-system (name &optional (error-p t))
(let* ((name (coerce-name name))
(in-memory (gethash name *defined-systems*))
- (on-disk (system-definition-pathname name)))
+ (on-disk (system-definition-pathname name)))
(when (and on-disk
+ (probe-file on-disk)
(or (not in-memory)
(< (car in-memory) (file-write-date on-disk))))
(let ((*package* (make-package (gensym #.(package-name *package*))
--
Andreas Fuchs, <[email protected]>, [email protected], antifuchs
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf