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

Reply via email to