On 16 Sep 2024, at 0:39, Robert Dodier wrote:

On Sun, Sep 15, 2024 at 7:29 PM phoebe Goldman <phoebe@goldman-tribe.org> wrote:

if you're newly adding system definitions, it seems like you must be at liberty to choose whatever names you want for those systems, right?

Yes, and I might end up there, but I'd rather keep the name of the
system the same as the name of the project, because it's going to
cause unnecessary confusion to try to ensure that users refer to the
"right" name.

Maybe I can encapsulate some heuristics so that nonconforming names
get mapped into the corresponding conforming name or names, so that
users can refer to the original, nonconforming name ... That's not
foolproof, so, again, I'd rather not if I don't have to.

This is what I suggested earlier: wrap the system-finding logic (quicklisp does this) so that you can find system definitions for non-conforming names and ship that ASDF extension. There are challenges here, such as how to ensure that the extension is loaded when needed, but existing facilities like :defsystem-depends-on will help with that (although there's a bit of a chicken and egg issue).

Another alternative is to specify not a heuristic, but an algorithm for translating non-conforming names to conforming names, similar to the way JSON libraries specify how JSON strings used to name properties can be mapped to Lisp symbols.