[asdf-devel] never ending component relative pathnames [2]

Faré fahree at gmail.com
Wed Mar 10 03:46:09 UTC 2010


>> b- when the source-file-type of a component is a string, then it will
>> be the type, and the last /-separated component of the string provides
>> the name.
>
> This case worries me.  It seems to require that every system definer
> have a strongish sense of the internals of ASDF, and will give odd
> results when someone writes
>
> (:cl-source-file "foo.lisp")
>
> ASDF will want "foo.lisp.lisp".
>
> I know /why/ you got to this, and if you think about ASDF "from the
> inside" it makes sense, but "from the outside" I don't think it makes sense.
>
> Would it be so bad to change this to
>
> "when the source-file-type of a component is a string, then a
> component-name containing a period will cause ASDF to emit an error."
>
> This will cause the vast majority of simple cases to behave sensibly,
> IMO.  It has the effect of making it hard to put a period in a file
> name.  But since embedding periods in filenames in the CL pathname
> systems is problematic, I'd prefer making the user specifically indicate
> that s/he is good and bloody sure s/he wants that period to be part of
> the :name component by imposing some cumbersome quoting requirement.
> Perhaps something like "fooYESIBLOODYWELLMEANIT.bar" ;-)
>
I'd vote against this rule you propose, because

1- I am in charge of building a large system, where some components
have names such as foo-V1.1/ or bar/baz-V1.200.lisp that reflect the
fact that we must deal with compatibility with various versioned
protocols. I'd rather not go back to having to magically generate
pathnames for them when portable names were previously possible.

2- for backwards compatibility with existing system files, the type
must be optional.

3- for aesthetic reasons, I find that it's nicer if I don't have to
mysteriously do "bar/baz" but "bar/baz-V1.200.lisp". I feel that the
rule ".lisp is always added to the filename" is simpler and easier for
newcomers to understand than the rule ".lisp is added to the filename
iff there isn't a dot in the name already".

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
Trying to make bits uncopyable is like trying to make water not wet. The
sooner people accept this, and build business models that take this into
account, the sooner people will start making money again. — Bruce Schneier




More information about the asdf-devel mailing list