ASDF config file under Windows

Robert Goldman rpgoldman at sift.info
Sun Jun 4 19:20:08 UTC 2023


Ah, I see.  I think some of my work colleagues were doing something in 
their CL init files that must have loaded some ASDF systems, because 
they were seeing configuration happen before they got into interactive 
contact with the REPL.

Thank you very much for clarifying, Faré!



On 4 Jun 2023, at 14:11, Faré wrote:

> ASDF configuration is lazy. It doesn't happen during load, but the 
> first
> time ASDF is invoked, if not done by the user after loading ASDF.
>
> On Sun, Jun 4, 2023, 15:00 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
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20230604/8485a590/attachment-0001.html>


More information about the asdf-devel mailing list