ASDF vs. logical pathnames in CMUCL

"Christopher C. Stacy" <[email protected]>
Newsgroups gmane.lisp.cmucl.general,gmane.lisp.cclan.general
Message-ID <[email protected]>
In CMUCL 18e, ASDF 1.84:

ASDF is not working for me at all, apparently because 
I am defining my logical pathnames wrong.

Here's a simple example:

(setf (logical-pathname-translations "x") 
      `(("asdf;**;*.*.*"   "/home/cstacy/S/L/asdf/**/")
        ("uffi;**;*.*.*"   "/home/cstacy/L/uffi-1.4.12/**/")))

With the above logical pathnames, I can do this:

 (load "x:asdf;asdf")
; Loading #p"/mnt/bonk/k/S/L/asdf/asdf.x86f".

That pathname works even though it refers to a sambda mount on 
a Windows machine  (I just thought I'd mention that, 
but I don't think SMB is an issue here.)

Now I want to use ASDF to load UFFI.
(UFFI's pathname is a local file system pathname, by the way.)

(pushnew "x:uffi;" asdf:*central-registry* :test #'equal)
=> ("x:uffi;" *DEFAULT-PATHNAME-DEFAULTS*)


(probe-file "X:UFFI;UFFI.ASD")
=> #p"/home/cstacy/L/uffi-1.4.12/uffi.asd"
(probe-file "x:uffi;uffi.asd")
=> #p"/home/cstacy/L/uffi-1.4.12/uffi.asd"

I think the pathname parser just converts all those
components to their canonical case for logical hosts.
Both of those were really uppercase.

(asdf:oos 'asdf:load-op :uffi)
component "uffi" not found

But the pathname that ASDF is probing has some components 
in uppercase, and some in lowercase:

#.(logical-pathname "X:UFFI;uffi.asd") is a structure of type LOGICAL-PATHNAME.
HOST: #<COMMON-LISP::LOGICAL-HOST>.
DEVICE: :UNSPECIFIC.
DIRECTORY: (:ABSOLUTE "UFFI").
NAME: "uffi".
TYPE: "asd".
VERSION: :NEWEST.
Probing uffi.asd
#p"uffi.asd" is a structure of type PATHNAME.
HOST: #<COMMON-LISP::UNIX-HOST>.
DEVICE: NIL.
DIRECTORY: NIL.
NAME: "uffi".
TYPE: "asd".

Since ASDF is obviously working for everyone else in the world,
perhaps someone here can shed some light on what I am doing wrong.
Maybe I'm supposed to define my logical host differently?

When I asked this on comp.lang.lisp, someone suggested using
MAKE-PATHNAME like this:

("uffi;**;*.*.*" ,(make-pathname 
		    :directory '(:absolute "home" "cstacy" "L" "uffi-1.4.12" :wild-inferiors)
		    :name :wild :type :wild :version :wild))

But that didn't help me at all.  I suppose it had no effect because
ASDF:SYSDEF-CENTRAL-REGISTRY-SEARCH makes the actual pathname like:

 (MAKE-PATHNAME :DEFAULTS DEFAULTS :VERSION :NEWEST
                 :NAME NAME :TYPE "asd" :CASE :LOCAL)

(Is that :LOCAL case really supposed to be there?)

Could someone just please show me a working example of a use
of LOGICAL-PATHNAME-TRANSLATIONS in conjunction with ASDF?
I'm baffled as to what the problem could be, and apparently
whatever everyone else does, just works, so I am being very
dense somewhere along the way!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.