ASDF config file under Windows

Marco Antoniotti marco.antoniotti at unimib.it
Mon Jun 5 17:07:46 UTC 2023


... actually, "the bug" is the ANSI spec :) :) :) :)

On Mon, Jun 5, 2023 at 7:06 PM Marco Antoniotti <marco.antoniotti at unimib.it>
wrote:

> Yeah.  I remember reporting the bug on C.L.L.
>
> "The bug" being Franz's "Modern Mode" :) :) :) :)
>
> On Mon, Jun 5, 2023 at 7:05 PM Wilfredo Velazquez <zulu.inuoe at gmail.com>
> wrote:
>
>> That's the thing with (symbol-name '#:foo), it relies on no such
>> assumptions. Of note, consider Allegro's "Modern Mode":
>>
>> https://franz.com/support/tech_corner/modern.mode.html
>>
>> Whether I agree with it or not, using the `symbol-name` version makes me
>> not have to think about any of these things further and carry on with my
>> life.
>> But that's just like, my opinion, man
>>
>> On Mon, Jun 5, 2023 at 1:00 PM Marco Antoniotti <
>> marco.antoniotti at unimib.it> wrote:
>>
>>> Even easier!
>>>
>>> "FOO"
>>>
>>> ... assuming the usual rules.
>>>
>>> Cheers
>>>
>>> MA
>>>
>>>
>>> On Mon, Jun 5, 2023 at 5:55 PM Wilfredo Velazquez <zulu.inuoe at gmail.com>
>>> wrote:
>>>
>>>> Ah, pleasure to learn of another fellow
>>>>     (symbol-name '#:foo)
>>>> enjoyer :)
>>>>
>>>> On Mon, Jun 5, 2023, 10:18 AM Marco Antoniotti <
>>>> marco.antoniotti at unimib.it> wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> CLAD can be used for *any* Mac/Windows/UN*X configuration.  The
>>>>> current limitations are that it assumes "personal" configurations and not
>>>>> "system wide/admin accessible only locations".
>>>>>
>>>>> The issue is that, as soon as ASDF gets loaded, it should load CLAD as
>>>>> a minimal prerequisite.  At that point you have the CLAD package present
>>>>> and you can issue a
>>>>>
>>>>> (clad:ensure-app-or-library-data-folder "ASDF")
>>>>>
>>>>> or even a
>>>>>
>>>>> (clad:ensure-app-or-library-data-folder "ASDF" :impl-dependent t)
>>>>>
>>>>> And you will have the, e.g., "~/Library/Common Lisp/ASDF/" ready on a
>>>>> Mac, or the "C:/Users/MeMyself/AppData/Roaming/Common
>>>>> Lisp/ASDF/LispWorks/" ready on Windows (10, and 11 for sure).
>>>>>
>>>>> Is that what you want?
>>>>>
>>>>> I did write this thingy because there was a pesky configuration issue
>>>>> with - another shameless plus - HELambdaP (https://helambdap.sf.net).
>>>>> I believe it solved the problem in a rather general way.
>>>>>
>>>>> Cheers
>>>>>
>>>>> Marco
>>>>>
>>>>> PS  Of course there is another rabbit hole to be handled - or avoided
>>>>> :)
>>>>> What you REALLY want to have in the "ASDF loading code" is:
>>>>>
>>>>> (load-if-possible "CLAD-STUFF")
>>>>> (funcall (find-symbol (string '#:ensure-app-or-library-data-folder)
>>>>> "CLAD") "ASDF")
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Jun 5, 2023 at 3:49 PM Robert Goldman <rpgoldman at sift.net>
>>>>> wrote:
>>>>>
>>>>>> I was just answering what I thought was your question -- could CLAD
>>>>>> be used as a source for ASDF configuration.
>>>>>>
>>>>>> On 4 Jun 2023, at 15:57, Marco Antoniotti wrote:
>>>>>>
>>>>>> Hi Robert,
>>>>>>
>>>>>> AFAIU this is the configuration of ASDF itself, when loading in a
>>>>>> fresh CL.  I think we are not clear about the timing of what should be
>>>>>> loaded when.
>>>>>>
>>>>>> CLAD does not need ASDF or UIOP.  It just has a .asd file because
>>>>>> Quicklisp asks for it.
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> MA
>>>>>>
>>>>>>
>>>>>> On Sun, Jun 4, 2023 at 9:00 PM Robert Goldman <rpgoldman at sift.net>
>>>>>> wrote:
>>>>>>
>>>>>>> TBQH, I am not as sure as I should be. I try to avoid all the
>>>>>>> configuration that happens while ASDF loads, so that I configure only
>>>>>>> *after* the load is complete, at a point where I can watch what
>>>>>>> goes on. As I have said before, I don't like the configuration that uses
>>>>>>> config files, environment variables or magic directories, because it's
>>>>>>> impossible to debug (by the time ASDF is loaded and can be instrumented,
>>>>>>> it's too late).
>>>>>>>
>>>>>>> I believe the right thing would be for you to figure out how to add
>>>>>>> an entry to the variable asdf:*default-source-registries* that is a
>>>>>>> function that will collect the appropriate configuration information. But I
>>>>>>> don't claim to fully understand source-registry.lisp
>>>>>>> <https://gitlab.common-lisp.net/asdf/asdf/-/blob/9c7f1b76ca8e820c020a3ec3aeb4b507ab15aa34/source-registry.lisp>
>>>>>>> .
>>>>>>>
>>>>>>> On 4 Jun 2023, at 3:29, Marco Antoniotti wrote:
>>>>>>>
>>>>>>> Sure.
>>>>>>>
>>>>>>> I am not privy to ASDF bootstrap.  Where would you start?
>>>>>>>
>>>>>>> MA
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Jun 4, 2023 at 12:41 AM Robert P. Goldman <
>>>>>>> rpgoldman at sift.net> wrote:
>>>>>>>
>>>>>>>> The next step would be to add an ASDF plug-in so that ASDF can read
>>>>>>>> its configuration from a CLAD set up…. :-)
>>>>>>>>
>>>>>>>> --
>>>>>>>> Robert P. Goldman
>>>>>>>>
>>>>>>>> On June 3, 2023 at 16:56:53, Marco Antoniotti (
>>>>>>>> marco.antoniotti at unimib.it) wrote:
>>>>>>>>
>>>>>>>>> Wellll.  You need a CL to load ASDF, don’t you? :)
>>>>>>>>>
>>>>>>>>> CLAD is minimal and barebones.  You can load it from two files
>>>>>>>>> (just because the DEFPACKAGE is separate) and it’s there.  Look ma! No
>>>>>>>>> ASDF! :) (Or UIOP)
>>>>>>>>>
>>>>>>>>> But I see your point.  Time to add a clad-setup.lisp file.
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>>
>>>>>>>>> MA
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sat, 3 Jun 2023 at 23:10, Robert Goldman <rpgoldman at sift.info>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I do like the idea of CLAD, but in this case isn't there a
>>>>>>>>>> Catch-22? You need to configure ASDF in order to load CLAD, so you can't
>>>>>>>>>> use CLAD to configure ASDF, can you?
>>>>>>>>>>
>>>>>>>>>> On 3 Jun 2023, at 10:57, Marco Antoniotti wrote:
>>>>>>>>>>
>>>>>>>>>> Ahem.  Shameless plug:
>>>>>>>>>> https://gitlab.common-lisp.net/mantoniotti/CLAD
>>>>>>>>>>
>>>>>>>>>> Cheers
>>>>>>>>>>
>>>>>>>>>> MA
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sat, Jun 3, 2023 at 5:28 PM Robert Goldman <
>>>>>>>>>> rpgoldman at sift.info> wrote:
>>>>>>>>>>
>>>>>>>>>>> Dear Greg,
>>>>>>>>>>>
>>>>>>>>>>> Thanks for the kind words! I am not sure why I didn't see your
>>>>>>>>>>> post on ASDF-devel, but I didn't. And I have seen several requests for
>>>>>>>>>>> moderation, so the list seems live. In case my response is interesting to
>>>>>>>>>>> the group, I am responding to the list as well.
>>>>>>>>>>>
>>>>>>>>>>> A couple of disclaimers: (1) I haven't used Windows in more than
>>>>>>>>>>> a decade, and (2) I don't use these configuration files. I find I'm happier
>>>>>>>>>>> to keep all of my lisp configuration in lisp configuration files (
>>>>>>>>>>> clinit.cl, .sbclrc, etc. -- indeed I point all of those at one
>>>>>>>>>>> single lisp-config.lisp file), instead of having to hunt
>>>>>>>>>>> through multiple files in multiple locations for this information. So take
>>>>>>>>>>> anything I say with more than a grain of salt (given your cardiologist
>>>>>>>>>>> approves!).
>>>>>>>>>>>
>>>>>>>>>>> That said, these config files are placed according to the XDG
>>>>>>>>>>> standard which... as far as I can tell only applies to linux, and not to
>>>>>>>>>>> either Windows or MacOS. So there's code in ASDF/UIOP that extends XDG to
>>>>>>>>>>> other platforms. ASDF documentation about XDG can be found here
>>>>>>>>>>> <https://asdf.common-lisp.dev/asdf.html#XDG-base-directory>.
>>>>>>>>>>>
>>>>>>>>>>> I don't understand Windows enough to understand this piece of
>>>>>>>>>>> text from the ASDF manual:
>>>>>>>>>>>
>>>>>>>>>>> Since support for querying the Windows registry is not possible
>>>>>>>>>>> to do in reasonable amounts of portable Common Lisp code, ASDF 3 relies on
>>>>>>>>>>> the environment variables that Windows usually exports, and are hopefully
>>>>>>>>>>> in synch with the Windows registry. If you care about the details, see
>>>>>>>>>>> uiop/configuration.lisp and don’t hesitate to suggest improvements.
>>>>>>>>>>>
>>>>>>>>>>> The relevant code may be found in uiop/configuration.lisp
>>>>>>>>>>> <https://gitlab.common-lisp.net/asdf/asdf/-/blob/release/uiop/configuration.lisp>.
>>>>>>>>>>> It looks like invoking the functions uiop:xdg-config-home and
>>>>>>>>>>> uiop:xdg-config-pathnames might help you figure out where ASDF
>>>>>>>>>>> is looking. But I don't really understand the discussion about the registry
>>>>>>>>>>> above. I do see a bit of code that says that UIOP (and thus ASDF) look for
>>>>>>>>>>> configs in the value of (uiop:xdg-data-dirs "config/") -- maybe
>>>>>>>>>>> see what that evaluates to on your Windows box?
>>>>>>>>>>>
>>>>>>>>>>> I hope that these snippets have been helpful, and if you find
>>>>>>>>>>> the answers you seek, please send to me and ASDF-devel, so that the
>>>>>>>>>>> information will be available to others.
>>>>>>>>>>>
>>>>>>>>>>> It might be a good thing if someone with the resources would
>>>>>>>>>>> gift a Windows resource to the CL Foundation to hook into
>>>>>>>>>>> common-lisp.net so that the community doesn't have to rely on
>>>>>>>>>>> this kind of guesswork. I note that ASDF is no longer tested on Windows at
>>>>>>>>>>> all, since I don't have access to a Windows VM and even if I did, I
>>>>>>>>>>> wouldn't know how to use it (nor do I have the time to learn).
>>>>>>>>>>>
>>>>>>>>>>> Good luck!
>>>>>>>>>>> R
>>>>>>>>>>>
>>>>>>>>>>> On 2 Jun 2023, at 19:40, Greg Bennett wrote:
>>>>>>>>>>>
>>>>>>>>>>> Good evening Robert,
>>>>>>>>>>>
>>>>>>>>>>> Some longish time ago you were kind enough to help me with ASDF
>>>>>>>>>>> matters.
>>>>>>>>>>> I posted recently to asdf-devel, largely in the hope that you
>>>>>>>>>>> might see it, I confess.
>>>>>>>>>>>
>>>>>>>>>>> Web search has, so far, not been helpful, I'm afraid.
>>>>>>>>>>>
>>>>>>>>>>> I shall quite understand if you do not reply; your inbox must
>>>>>>>>>>> receive lots of this sort of thing.
>>>>>>>>>>>
>>>>>>>>>>> I have a test system in c:/ASDF/asdf-tests/ copied from the
>>>>>>>>>>> linux directory /home/gwbennett/ASDF/asdf-tests/
>>>>>>>>>>>
>>>>>>>>>>> Under Linux in my source-registry.conf.d directory I have the
>>>>>>>>>>> file gb-source.conf
>>>>>>>>>>> with the one line (:tree "/home/gwbennett/ASDF/asdf-tests/")
>>>>>>>>>>>
>>>>>>>>>>> Then in sbcl I can issue (asdf:load-system "gb-a") and all is
>>>>>>>>>>> well.
>>>>>>>>>>>
>>>>>>>>>>> I have tried various spots for gb-source.conf under Windows, all
>>>>>>>>>>> without success:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> c:\Users\Greg\AppData\Local\config\common-lisp\source-registry.conf.d\
>>>>>>>>>>>
>>>>>>>>>>> c:\Users\Greg\
>>>>>>>>>>>
>>>>>>>>>>> c:\Users\Greg\AppData\
>>>>>>>>>>>
>>>>>>>>>>> c:\Users\Greg\AppData\Local\
>>>>>>>>>>>
>>>>>>>>>>> If I issue, old style,  (push "c:/ASDF/asdf-tests/"
>>>>>>>>>>> asdf:*central-registry*) then all is well.
>>>>>>>>>>>
>>>>>>>>>>> Perhaps there is no place for a config file under W!
>>>>>>>>>>>
>>>>>>>>>>> Cheers
>>>>>>>>>>>
>>>>>>>>>>> Greg
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>> Marco Antoniotti
>>>>>>>>> https://dcb.disco.unimib.it
>>>>>>>>>
>>>>>>>>
>>
>> --
>> Wilfredo Velázquez-Rodríguez
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20230605/eb3c7b06/attachment-0001.html>


More information about the asdf-devel mailing list