[asdf-devel] never ending component relative pathnames [2]
Robert Goldman
rpgoldman at sift.info
Wed Mar 10 01:30:49 UTC 2010
On 3/9/10 Mar 9 -5:49 PM, Faré wrote:
> Yes, it hasn't been documented so far. My bad. At least it now has a
> well-defined meaning, as opposed to the previous mess.
> a- when the source-file-type of a component is NIL, then the file type
> is read from the last /-separated component of the string as the last
> dot-separated component (unless there's only one dot and it's the
> first character, in which case the type is NIL and that's the name).
> 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" ;-)
> c- when the source-file-type of a component is :DIRECTORY, then all
> /-separated components of the string including the last one are
> interpreted as directories.
Best,
Robert
More information about the asdf-devel
mailing list