Hi Robert,
In afraid that the system lookup works for you but will not work in general so the documentation must remain as is .
We support users who use logical pathnames. We also support users on case insensitive and case preserving file systems.
For that matter, we permit existing systems like “foo” be referred to by ‘foo, and a system named “FOO” could not be designated by ‘foo.
These restrictions were not just imposed arbitrarily: they have a rationale, as I’ve tried to explain.
Yours,
-Robert
Sent from my iPhone
On Sep 15, 2024 at 15:48:11 CDT, Robert Dodier robert.dodier@gmail.com wrote:
On Sun, Sep 15, 2024 at 9:00 AM Faré fahree@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