Re: ASDF vs. logical pathnames in CMUCL
Raymond Toy <[email protected]>
| Newsgroups | gmane.lisp.cmucl.general,gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
>>>>> "Daniel" == Daniel Barlow <[email protected]> writes: Daniel> "Christopher C. Stacy" <[email protected]> writes: >> Is there something I should be using that's not ASDF? >> Or are you stuck using this ASDF physical pathname solution at the moment? Daniel> I can't find the specific mail that I wanted to repsond to right now, Daniel> but this one will do. Daniel> Various people have asserted that ASDF doesn't work with LPNs. For Daniel> the record, if this is true it's not intentional. It is possible Daniel> (and, I maintain, easiest) to use asdf without absolute pathnames at Daniel> all (thus eliminating most of the need for LPNs) and I think most Daniel> people are probably using it that way. Daniel> I'll see if I can do something with your bug report this evening or Daniel> over the weekend, depending on when I have time to install CMUCL. FWIW, Chisheng Huang sent the following test case to me in private. I hope he doesn't mind me posting it here. 1. In a Unix shell: mkdir /tmp/systems cat /dev/null > /tmp/systems/v.asd 2. In CMUCL (mine is CMU Common Lisp CVS snapshot 2003-12): CL-USER> (setf (logical-pathname-translations "v") '(("**;*.*" "/tmp/**/*.*"))) (("**;*.*" "/tmp/**/*.*")) CL-USER> (MAKE-PATHNAME :DEFAULTS "v:systems;" :VERSION :NEWEST :NAME "v" :TYPE "asd" :CASE :LOCAL) #.(logical-pathname "V:SYSTEMS;v.asd") CL-USER> (probe-file *) NIL CL-USER> (probe-file #.(logical-pathname "V:SYSTEMS;v.asd")) #p"/tmp/systems/v.asd" CL-USER> So, I think what is happening is the make-pathname with a logical path and :case :local, is preserving the case of everything, including the uppercase parts of the logical path. Perhaps the right thing is to convert any lower case parts to upper case when the pathname is a logical pathname. I have not yet examined the CLHS to see what it says about this. Ray