[Openmcl-devel] Re: Another pathname question

Octav Popescu octav at cmu.edu
Thu Feb 26 13:02:14 PST 2004


One thing that might be problematic is load-pathname. I couldn't find it in 
the hyperspec index, I don't know if it's part of the standard. There is a 
*load-pathname* variable however.

If you're just interested in something that works, this is what I found to 
be working in MCL, Lispworks, and Allegro. I don't know about OpenMCL, I 
haven't tried.

(setf (logical-pathname-translations "foo")
      `(("**;*.*"
        ,(make-pathname :host (pathname-host *load-truename*)
                        :directory (append (pathname-directory 
*load-truename*)
                                           '(:wild-inferiors))
                        :name :wild :type :wild))
        (";**;*.*"
        ,(make-pathname :host (pathname-host *load-truename*)
                        :directory (append (pathname-directory 
*load-truename*)
                                           '(:wild-inferiors))
                        :name :wild :type :wild))))

The second definitions was actually needed in one of Lispworks or Allegro, 
I don't remember which one. Or maybe both.

I haven't tried to use *default-pathname-defaults*, I just used (load 
"foo:two"). I don't think it should make a difference.

Octav


--On Thursday, February 26, 2004 10:48 -0500 Gary King 
<gwking at cs.umass.edu> wrote:

> I have two files named "one.lisp" and "two.lisp". Here they are:
>
> one.lisp
> (in-package common-lisp-user)
>
> (setf (logical-pathname-translations "foo")
>       `(("foo:**;*.*"
>          ,(make-pathname
>            :name :wild
>            :type :wild
>            :directory (append (pathname-directory (load-pathname))
>                               (list :wild-inferiors))))))
>
> (let ((*default-pathname-defaults* #P"foo:"))
>   (load "two"))
>
> two.lisp
> (in-package common-lisp-user)
>
> (print "HI HO")
>
> I've placed them in the same directory. Now my hope was that when I load
> one, it will load two. This works under MCL. It does not, however, work
> under LispWorks, OpenMCL, etc. Under OpenMCL, I get the following error:
>
> ? (load "one.lisp")
>> Error in process listener(1): Illegal logical namestring
>> "/Volumes/Users/gwking/Applications/MCL-5.1b1/test/two.lisp"  While
>> executing: CCL::STRING-TO-PATHNAME
>
> Under LispWorks, I get:
>
> Error: Parsing of logical pathname "/.automount/*/root/**/*" failed at
> index 0 (#\/).    1 (continue) Try loading two again.
>   ...
>
> Obviously, I'm confused. Help appreciated.
> --
> Gary Warren King, Lab Manager
> EKSL East, University of Massachusetts * 413 577 0176
>
> [neoconservations] forget the first principle of open society: namely,
> that we may be wrong.     -- George Soros in a TPM interview
> (http://www.talkingpointsmemo.com/archives/week_2004_01_18.html#002456)







More information about the Openmcl-devel mailing list