On Sun, Sep 15, 2024 at 9:00 AM Faré <fah...@gmail.com> wrote: > > 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. I am trying to avoid them. I thought perhaps that it would be necessary -- appears that's not the case; see below. > >> 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. Yes! (defsystem "Foo_Bar" ...) in a file named Foo_Bar.asd is located successfully by (asdf:load-system "Foo_Bar"). It's not supposed to work but it does anyway! Hurray! At this point can I ask the ASDF developers to resolve the inconsistency between the code and the documentation by making the documentation match the code instead of vice versa. > > 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. No, that commit is only updating the documentation *say* that underscores are rejected; it doesn't actually implement the test, not even in the most recent (3.3.7.1) version. (I tried it ASDF 3.3.7.1 with SBCL and CMUCL on Linux.) I looked at asdf/parse-defsystem.lisp and it doesn't mention underscore, low_line, _, 95, or 5f (in any case variants). > It will be enforced with a vengeance against users of logical > pathnames on SBCL. Not sure anywhere else. Well, if it's only enforced when logical pathnames are in effect, then the documentation should say that. Robert