Here is a patch against 1.720 that fixes a weakness in merge-pathnames*. This was a show stopper in my system. It seems that merge-pathnames* assumes that *default-pathname-defaults* has some interesting value to contribute which is not always the case. In my system and in a few others (clisp comes to mind) the usual value of *default-pathname-defaults* is #P"" which ends up giving (pathname-directory *default-pathname-defaults*) => nil Then, (append nil (cdr directory)) is probably not a "valid pathname directory". In clisp passing this not so "valid pathname directory" to make-pathname will result in a visit in the debugger... I want also to insist again on the issue of accessing the process current directory. Assuming that *default-pathname-defaults* is a substitute for the process current directory is not portable ANSI Common Lisp code. The following definition is very likely to be wrong on at least one ANSI Common Lisp conforming implementation: (defun current-directory () (truenamize (pathname-directory-pathname *default-pathname-defaults*))) Cheers, Jean-Claude Beaudoin -------
diff asdf-1.720/asdf.lisp asdf.lisp 519c520,522 < (append (pathname-directory defaults) (cdr directory))
(if (pathname-directory defaults) (append (pathname-directory defaults) (cdr directory)) directory)