[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