ASDF config file under Windows

Marco Antoniotti marco.antoniotti at unimib.it
Mon Jun 5 17:00:43 UTC 2023


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
>>>>>>
>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20230605/e31024c2/attachment-0001.html>


More information about the asdf-devel mailing list