[Openmcl-devel] Directory and symlinks

Zach Beane xach at xach.com
Sun Nov 13 11:19:30 PST 2011


Gary Byers <gb at clozure.com> writes:

> On Fri, 11 Nov 2011, Zach Beane wrote:
>
>>
>> In light of CCL's interpretation of the standard'
>
> As I noted the other day, SBCL, AllegroCL, and LispWorks (at least)
> seem to share this interpretation.

SBCL no longer shares the interpretation, and I could not reproduce the
result on Allegro CL 8.2 for Linux. What Allegro version and platform
are you using?

Here's a survey of implementations. The directory structure looks like
this:

    src/bar/foo.asd
    foo/bar -> ../src/bar
    foo/baz/quux.asd

I started each implementation in "foo", and then loaded a Lisp file with
this code:

    (print (lisp-implementation-version))
    (print (machine-type))
    (print (list '(directory #p "*/*.asd")
                 '=>
                 (directory #p "*/*.asd")) )

Here are the results:

Armed Bear Common Lisp 1.0.0:

    "1.0.0-svn-13663" 
    "X86-64" 
    ((DIRECTORY #P"*/*.asd") =>
    (#P"/home/xach/lisp/linktest/foo/baz/quux.asd"
    #P"/home/xach/lisp/linktest/src/bar/foo.asd"))

Allegro CL 8.2:

    "8.2 [64-bit Linux (x86-64)] (Jan 25, 2010 14:48)" 
    "64-bit x86-64" 
    ((DIRECTORY #P"*/*.asd") =>
     (#P"/home/xach/lisp/linktest/foo/bar/foo.asd"
      #P"/home/xach/lisp/linktest/foo/baz/quux.asd")) 

CLISP CVS head:

    "2.49+ (2010-07-17) (built 3501600628) (memory 3501600875)" 
    "X86_64" 
    ((DIRECTORY #P"*/*.asd") =>
     (#P"/home/xach/lisp/linktest/foo/baz/quux.asd"
      #P"/home/xach/lisp/linktest/src/bar/foo.asd")) 

Clozure CL 1.7:

    "Version 1.7-r14925M  (LinuxX8664)" 
    "x86_64" 
    ((DIRECTORY #P"*/*.asd") =>
    (#P"/home/xach/lisp/linktest/foo/baz/quux.asd")) 

CMUCL 20c:

    "20c release-20c (20C Unicode)" 
    "X86" 
    ((DIRECTORY #P"*/*.asd") =>
     (#P"/home/xach/lisp/linktest/src/bar/foo.asd"
      #P"/home/xach/lisp/linktest/foo/baz/quux.asd")) 

ECL git head:

    "11.1.1" 
    "x86_64" 
    ((DIRECTORY #P"*/*.asd") =>
     (#P"/home/xach/lisp/linktest/foo/baz/quux.asd"
      #P"/home/xach/lisp/linktest/foo/../src/bar/foo.asd")) 

LispWorks: I don't have access on this system, but I believe it agrees
with Clozure CL.

SBCL git head:

    "1.0.53.24-b71b8da" 
    "X86-64" 
    ((DIRECTORY #P"*/*.asd") =>
     (#P"/home/xach/lisp/linktest/foo/baz/quux.asd"
      #P"/home/xach/lisp/linktest/src/bar/foo.asd")) 

Scieneer CL 1.3.9:

    "1.3.9" 
    "AMD64" 
    ((DIRECTORY #P"*/*.asd") =>
     (#P"file://localhost/home/xach/lisp/linktest/src/bar/foo.asd"
      #P"file://localhost/home/xach/lisp/linktest/foo/baz/quux.asd")) 

So, seven implementations return results in a way that are very
convenient to me, and two don't. I don't think interpretation of the
spec is a matter of blessing majority practice (I mostly use SBCL, after
all), but when making a point regarding how other implementations act,
it can be useful to have the full picture.

Zach



More information about the Openmcl-devel mailing list