Just to be clear, I don't *want* to use logical pathnames, but I will if it provides a solution to the problem.
Logical pathnames will make anything WAAAAAYYYY worse.
Just make sure you use a (defsystem |Foo_Bar| ...) with the same case, no?
Aha, sorry, I meant (defsystem "Foo_Bar" ...) because symbols are downcased.
Anyway, the documentation says (https://asdf.common-lisp.dev/asdf.html#rule_002dsystem_002ddesignator) that "Foo_Bar" is an unacceptable name since it has both an underscore and uppercase letters.
I don't know about that restriction against underscores. Looks like it's from commit 25bc69c a bit before 3.3.2.14. You'll have to ask Robert Goldman, but I believe it's a restriction that is necessary if you want to be compatible with your users using logical pathnames, but that might not apply in your case.
I find that (defsystem baz_quux ...) in a file named "baz_quux.asd" is loaded successfully without complaint -- I'm surprised that works; I guess the no underscores rule is not actually enforced?
It will be enforced with a vengeance against users of logical pathnames on SBCL. Not sure anywhere else.
—♯ƒ • François-René Rideau • Chief Scientist, MuKn.com/fare “Remember kiddies: you can vote your way into communism but you have to shoot your way out.”