Misnamed secondary systems

Faré fahree at gmail.com
Fri Nov 18 13:19:14 UTC 2016

Starting with ASDF 3 (2013), ASDF officially supports "secondary systems",
i.e. additional systems named in an asd, beside the main one.
For the additional systems to be findable by ASDF, though, their name
must be of the form "foo/bar" where "foo.asd" is the name of the file,
and "foo" is called the primary system name.

ASDF1 and ASDF2 would let you define those systems, as well as
other systems of arbitrary names, but would be incapable of finding them.
By badly copying each other, Lispers have developed a lot of misnamed
secondary system the name of which doesn't match the pattern.

I'd like to forbid such misnamed systems.
Now a quick grepping through Quicklisp (see latest update to my ql-test)
finds 233 .asd files with such misnamed secondary systems.
Obviously it will take time to clean up the mess,
so for after the next release, I'd like to signal a full WARNING
when the condition is detected, and at some point,
make that a CERROR, then later an ERROR.

Cleaning up this mess will also prevent a subtle class of errors,
such as when two .asd files define each other's systems
(see test case test-mutual-redefinition.script in asdf/test).

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Demand the establishment of the government in its rightful home at Disneyland.

More information about the asdf-devel mailing list