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