On Sat, Sep 14, 2024 at 8:45 PM Faré <fah...@gmail.com> wrote:

> If you're using logical pathnames, you're asking for trouble
> (especially on SBCL). I wasted weeks of my life on logical pathnames,
> and STRONGLY recommend that no one should ever use them anymore under
> any circumstances.

Just to be clear, I don't *want* to use logical pathnames, but I will
if it provides a solution to the problem.

> If you're not, there should be no problem having a system called
> Foo_Bar, is there?
>
> Just make sure you use a (defsystem |Foo_Bar| ...) with the same case, no?

I dunno, that doesn't seem to work ... I tried this in SBCL which has
ASDF 3.3.something bundled.

(asdf:load-system "Foo_Bar")

provokes a warning: "WARNING: System definition file
#P"/home/dodier/tmp/Foo_Bar.asd" contains definition for system
"foo_bar". Please only define "Foo_Bar" and secondary systems with a
name starting with "Foo_Bar/" (e.g. "Foo_Bar/test") in that file.

and an error: Component "Foo_Bar" not found

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 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?

I guess the stated rules about simple component names are not actually
enforced by the DEFSYSTEM macro itself ... the do-nothing system

* (asdf:defsystem "Blurf_Mumble")
* (asdf:operate 'asdf:load-op *)

succeeds. I guess the stuff about string case only comes into play
when the file system gets involved?

FWIW & all the best.

Robert

Reply via email to