ASDF config file under Windows

Robert Goldman rpgoldman at sift.net
Sun Jun 4 19:00:06 UTC 2023


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/23b557d1/attachment.html>


More information about the asdf-devel mailing list