>>>>> On Wed, 12 May 2004 14:00:38 -0400, Raymond Toy ("Raymond") writes:
>>>>> "Chris" == Christopher C Stacy <[EMAIL PROTECTED]> writes:
Chris> In CMUCL 18e, ASDF 1.84:
Chris> ASDF is not working for me at all, apparently because
Chris> I am defining my logical pathnames wrong.
Raymond> Pathnames make my head hurt. Add case, and I get a migraine.
Chris> Here's a simple example:
Chris> (setf (logical-pathname-translations "x")
Chris> `(("asdf;**;*.*.*" "/home/cstacy/S/L/asdf/**/")
Chris> ("uffi;**;*.*.*" "/home/cstacy/L/uffi-1.4.12/**/")))
Chris> But that didn't help me at all. I suppose it had no effect because
Chris> ASDF:SYSDEF-CENTRAL-REGISTRY-SEARCH makes the actual pathname like:
Chris> (MAKE-PATHNAME :DEFAULTS DEFAULTS :VERSION :NEWEST
Chris> :NAME NAME :TYPE "asd" :CASE :LOCAL)
Raymond> What are the values of default and name here?
Raymond> I'm trying to reproduce the problem, without having asdf.
(Raymond: Thanks!)
DEFAULTS is a pathname designator representing a directory; it's taken
from the list in ASDF::*CENTRAL-REGISTRY* so depends what you push
onto it. Each element of *CENTRAL-REGISTRY* is run through EVAL,
so you can put variable names there, too. It comes initialized with
the symbol *DEFAULT-PATHNAME-DEFAULTS* on the list.
My entries are like "X:UFFI;" in either string or #P form, in either
upper or lower case. (CMUCL parses the #P syntax for logical pathnames
as being uppercase, so there's only one logical pathname to consider.)
Here's what ASDF is probing for:
Trying this one: "X:UFFI;"
Gives this pathname: #.(logical-pathname "X:UFFI;uffi.asd")
HOST: #<COMMON-LISP::LOGICAL-HOST>.
DEVICE: :UNSPECIFIC.
DIRECTORY: (:ABSOLUTE "UFFI").
NAME: "uffi".
TYPE: "asd".
VERSION: :NEWEST.
Trying this one: "x:uffi;"
Gives this pathname: #.(logical-pathname "X:UFFI;uffi.asd")
HOST: #<COMMON-LISP::LOGICAL-HOST>.
DEVICE: :UNSPECIFIC.
DIRECTORY: (:ABSOLUTE "UFFI").
NAME: "uffi".
TYPE: "asd".
VERSION: :NEWEST.
Trying this one: #.(logical-pathname "X:UFFI;")
HOST: #<COMMON-LISP::LOGICAL-HOST>.
DEVICE: :UNSPECIFIC.
DIRECTORY: (:ABSOLUTE "UFFI").
NAME: NIL.
TYPE: NIL.
VERSION: NIL.
Gives this pathname: #.(logical-pathname "X:UFFI;uffi.asd")
HOST: #<COMMON-LISP::LOGICAL-HOST>.
DEVICE: :UNSPECIFIC.
DIRECTORY: (:ABSOLUTE "UFFI").
NAME: "uffi".
TYPE: "asd".
VERSION: :NEWEST.
Trying this one: *DEFAULT-PATHNAME-DEFAULTS*
#p"" is a structure of type PATHNAME.
HOST: #<COMMON-LISP::UNIX-HOST>.
DEVICE: NIL.
DIRECTORY: NIL.
NAME: NIL.
TYPE: NIL.
VERSION: :NEWEST.
Gives this pathname: #p"uffi.asd"
HOST: #<COMMON-LISP::UNIX-HOST>.
DEVICE: NIL.
DIRECTORY: NIL.
NAME: "uffi".
TYPE: "asd".
The NAME is canonically lowercase; the function COERCE-NAME calls
STRING-DOWNCASE on the symbol (eg. :UFFI) that names the system.
I also tried to call ASDF on a system named "UFFI" (uppercase string)
in order to force the NAME component to uppercase (although I am not
sure if it's really supposed to work to name systems like that).
The TYPE is lowercase; hardwired into SYSDEF-CENTRAL-REGISTRY-SEARCH,
There seems to be some assumptions about the case of the pathname
components - lowercase is built into the code in various places.
It seems to me that this can't ever work, since logical pathnames
are parsed by CMUCL as uppercase.
At this point, I must repeat my call to anyone who is using ASDF.
(So far only one person has answered, saying that they don't think it
works with logical pathnames!) I was under the impression that many
people are actively using ASDF in CMUCL, and surely they must be using
logical pathnames. I must be totally misunderstanding how logical
pathnames are supposed to be used, or how ASDF is supposed to be used.
It works for everyone but me, and I can't see how.
This does not seem to be a new issue. In the ancient version of ASDF
that I was using for the last year or so, I see that I had hacked it up
to coerce the components to uppercase if they were logical pathnames.
Apparently that's how I got around the problem before. Now I am trying
to use the latest version of ASDF because I need to load the latest
version of UFFI, so I can load the latest version of CL-SQL. This ASDF
is considerably more complicated, and there isn't a single place where
I can put that same hack.
How is anyone else loading UFFI and CL-SQL ? I know there are users.
Won't someone please just recite the incantations they are using?
Surely the whole problem must be that I am doing something really stupid.
[Please note that I am not on the CCLAN-LIST mailing list,
so I only see replies that are addressed to me.]
Chris