[cmucl-imp] DIRECTORY and symlinks

Faré fahree at gmail.com
Sat Dec 1 23:17:58 UTC 2012


>> No, but the assumption is that implementations will take steps to
>> compute this truename, which might result in errors, and it is not
>> portable to assume otherwise.
>
> That would be a strange assumption.
>
Yet, it's how things actually are today. Welcome to Common Lisp!

> It's important that DIRECTORY can
> be used to traverse directories.
>
It's important that it CANNOT, because that defeats the standard.

It's important that something ELSE can be used to traverse directories,
and becomes a new de facto standard.

> But I can't call anything else to traverse directories besides
> DIRECTORY.
>
What do you call to connect to a socket?
What do you call to play a sound?
What do you call to create a symlink?

The CL standard does not cover everything. Get over it.
Now work on stuff beyond the CL standard.

>>> Well, asdf-utils:directory* is full of #+.  That's the kind of code I
>>> like to avoid.
>>>
>> The whole point is that it has the #+ for each and every of the 9
>> active implementations plus 6 more, so you don't have to. (And yes
>> there might be bugs or missing #+'es, but at least they only have to
>> be fixed in one place.) Alternatively, there's IOLib.
>
> I shouldn't need to install third party libraries just to list the files
> in a directory.
>
In the real world, the choice is between:
1- be not portable
2- use a bad portability layer
3- greenspun your own bad a portability layer
4- use and contribute to a good portability layer, one that is robust
and comprehensive enough that it becomes the defacto standard and
deserves to be included in a future formal standard (if any).

I say 4.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
"Reality is that which, when you stop believing in it, doesn't go away".
                — Philip K. Dick


More information about the cmucl-imp mailing list