[asdf-devel] MCL issue

Pascal Costanza pc at p-cos.net
Thu May 19 19:12:35 UTC 2011


On 19 May 2011, at 20:58, Robert Goldman wrote:

> On 5/19/11 May 19 -1:24 PM, Pascal Costanza wrote:
>> 
>> On 18 May 2011, at 15:28, Robert Goldman wrote:
>> 
>>> On 5/18/11 May 18 -12:26 AM, Chun Tian (binghe) wrote:
>>>> I found a workaround for myself:
>>>> 
>>>> (in-package :asdf)
>>>> 
>>>> (defun user-homedir ()
>>>> #P"Macintosh HD:Users:binghe:")
>>>> 
>>>> with above code loaded as a ASDF patch, I can load other packages well.
>>> 
>>> As I read this, it's simply a bug in MCL --- they just aren't
>>> implementing user-homedir-pathname properly.
>>> 
>>> Isn't that right?
>> 
>> No, it's not right. The meaning of user-homedir-pathname is (intentionally) underspecified in ANSI CL.
> 
> I was not very careful here.  The meaning of U-H-D is *not*
> underspecified when the host is provided as an (optional) argument.  If
> we were providing our host as an argument to the function, then I
> believe the MCL behavior would be clearly buggy, since the spec says:
> 
> "The definition of home directory is implementation-dependent, but
> defined in Common Lisp to mean the directory where the user keeps
> personal files such as initialization files and mail."

There is no such directory in pre Mac OS X.

> I don't think that the MCL behavior of supplying the installation
> directory of the lisp implementation is defensible in light of the above
> language.

OK, in this case I was not careful. Here is what the documentation says:

When Macintosh Common Lisp is run, two logical hosts are set up automatically:
* The host "ccl" is set to the directory holding the MCL application.
* The host "home" is set to the directory holding the document that was launched with Macintosh Common Lisp.

user-homedir-pathname returns #P"home:" which points to wherever you started MCL from (for example, by double-clicking on some .lisp file).

>> It would be good if ASDF wouldn't rely on such underspecified features, or if
>> it would have a way to deal with the lack of such features in a more
>> meaningful way because, for example, this may not be the last time in history
>> that the notion of a user directory isn't supported or, as another example,
>> that pathnames look different from the usual Unix flavors that you see these
>> days.
> 
> Point taken, but I think this is unfair to ASDF.  This seems more like a
> case where (as with many things involving interaction with filenames and
> directories) the ANSI standard doesn't give us any /specified/ features
> that fill a very real need.  So we necessarily rely on underspecified
> features.  What are the /specified/ features that will fill this need?
> 
> Indeed, one of the things that ASDF does is provide a POSIX-ish portable
> file system sub-system precisely because the specified facilities
> (pathnames, logical pathnames) didn't do the job.

Because ASDF 2.x caused me some trouble in RMCL, I actually put some effort into learning logical pathnames - and they seem to work extremely well, as far as I can tell (but it requires specifying :ignore-inherited-configuration in my source registry configuration, which seems somewhat unclean to me - but I don't really know...)


Pascal

--
Pascal Costanza







More information about the asdf-devel mailing list