Hi ,
Just to clarify: the restrictions arose because your users’ ASDF source configuration could use logical pathnames. I tend to agree with Faré that logical pathnames are to be avoided whenever possible, but ASDF doesn’t impose that opinion on its users. Since we don’t, we require that file names — and therefore system names — be compatible with logical pathnames.
One could certainly override the way ASDF maps system names to file names, as I said earlier. But as I also said earlier, that’s probably more trouble than it’s worth. It would require understanding the ASDF internals extensively and also would make use of the libraries more complex and less predictable Thanks, -Robert
Sent from my iPhone
On Sep 14, 2024 at 22:44:47 CDT, Faré fahree@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. (Though we did use them at ITA to get location-independent debug file information on CCL.)
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?
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org “The worst thing about totalitarian regimes is not that they make people poor, miserable and unfree — it’s that they corrupt people’s souls, and turn everyone into a double-thinking, double-speaking liar for the sake of survival.”
On Sat, Sep 14, 2024 at 4:46 PM Robert Dodier robert.dodier@gmail.com wrote:
On Sat, Sep 14, 2024 at 11:01 AM Robert P. Goldman rpg@sift.net wrote:
I’ve got to push back on your rant. There’s a perfectly good reason for those two limitations you dislike: they are the same as the limitations on logical pathnames. So if you wish to be able to find an ASDF system relative to a directory designated by a logical pathname, those limitations are pretty much forced on you.
All right. Help me sort this out. I actually want to make this work.
I have a directory Foo_Bar and I want to create a .asd file (in any directory which is known to ASDF) which describes the stuff within Foo_Bar. From what I have sorted out so far, that .asd file must be named something other than "Foo_Bar.asd" and the system it describes must be named something other than "Foo_Bar".
The ideal outcome is that a user would say
(asdf:load-system "Foo_Bar")
and that the system which describes the stuff in "Foo_Bar" would get loaded. How close can I get to that, and what do I have to do, involving logical pathnames if need be, in order to get it?
I am thinking I need to do something like (I emphasize "like", as I am aware that the following code doesn't work):
(setf (logical-pathname-translations "abc") ("**;foobar.asd" "Foo_Bar.asd"))
and that must be executed before the system is defined
(defsystem "foobar" ...)
and before the user calls ASDF:LOAD-SYSTEM.
(asdf:load-system "Foo_Bar")
Can this work, at all? As I was saying, I actually want this (or anything) to work. I don't have any point to make except to get something working. Thanks for your help.
Robert