<div dir="ltr">I hadn't considered replacing the impl's ASDF this way. It sounds good, except I do need to remember then that my impl install is 'dirty', and also need to remember to apply this each time I upgrade or if I use a different impl.<div><div>It does give me the idea of customizing my impl's 'require' hook in my userinit file, however.</div></div><div><br></div><div>This is fine for my purposes since I prefer to isolate my 'builds', I'm just looking to have ASDF upgraded for my day-to-day dev.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 18, 2021 at 9:51 PM Eric Timmons <<a href="mailto:etimmons@mit.edu">etimmons@mit.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
> On 18 Jan 2021, at 17:37, Wilfredo Velazquez wrote:<br>
><br>
>> To reiterate, I believe that the instructions in<br>
>> <a href="https://common-lisp.net/project/asdf/asdf/Upgrading-ASDF.html" rel="noreferrer" target="_blank">https://common-lisp.net/project/asdf/asdf/Upgrading-ASDF.html</a> <br>
>> 'Upgrading<br>
>> ASDF' could use some clarification.<br>
>><br>
>> I am attempting to run a newer version of ASDF than that provided by <br>
>> my<br>
>> impl. The text I'm having issue with is:<br>
>><br>
>>> If your implementation already provides ASDF 3 or later (and it <br>
>>> should),<br>
>>> but you want a more recent ASDF version than your implementation <br>
>>> provides,<br>
>>> then you just need to ensure the more recent ASDF is installed in a<br>
>>> configured path, like any other system. We recommend you download an<br>
>>> official tarball or checkout a release from git into <br>
>>> ~/common-lisp/asdf/.<br>
>>> Once the source code for ASDF is installed, you don’t need any <br>
>>> extra step<br>
>>> to load it beyond the usual (require "asdf"): ASDF 3 will <br>
>>> automatically<br>
>>> look whether an updated version of itself is available amongst the<br>
>>> regularly configured systems, before it compiles anything else.<br>
<br>
Personally I've never really been a fan of installing ASDF this way<br>
since a) it requires loading ASDF twice: the implementation built-in and<br>
then the upgrade and b) it requires that ~/common-lisp/ be on ASDF's<br>
search path (I mess around with CL_SOURCE_REGISTRY envvar quite a bit<br>
and frequently end up excluding ~/common-lisp/). I tend to replace the<br>
implementation's built-in version<br>
<<a href="https://common-lisp.net/project/asdf/asdf.html#Replacing-your-implementation_0027s-ASDF" rel="noreferrer" target="_blank">https://common-lisp.net/project/asdf/asdf.html#Replacing-your-implementation_0027s-ASDF</a>>. But<br>
do note, I have seen this method occasionally break and I fall back to<br>
the ~/common-lisp/asdf/ apprach when it does. But I'm pretty sure it<br>
works in the latest release on at least SBCL, ECL, and CCL.<br>
<br>
> As far as I can tell, if you put a directory tree into `~/common-lisp/`, <br>
> ASDF will traverse it looking for system definitions, and there is <br>
> nothing you can do to override this.  I have come to dislike the <br>
> `~/common-lisp/` solution for this reason.<br>
<br>
That's not quite right. It could definitely be more friendly, but there<br>
are a few ways to better control it.<br>
<br>
To completely prevent ~/common-lisp/ from being traversed you could put<br>
an :ignore-inherited-configuration directive somewhere in the<br>
CL_SOURCE_REGISTRY envvar or<br>
$XDG_CONFIG_DIRS/common-lisp/source-registry.conf. But that approach<br>
also would prevent the files in<br>
$XDG_CONFIG_DIRS/common-lisp/source-registry.conf.d from being parsed<br>
(as well as any system level config). It might be nice to allow an<br>
inheritance config directive to be specified in the configuration<br>
directory parsing if it isn't already (there's an implicit<br>
:inherit-configuration tacked on the end of the directory based config).<br>
<br>
Another option is to drop a .cl-source-registry.cache file in<br>
~/common-lisp/ or one of the sub directories.<br>
<<a href="https://common-lisp.net/project/asdf/asdf.html#Caching-Results" rel="noreferrer" target="_blank">https://common-lisp.net/project/asdf/asdf.html#Caching-Results</a>>. ASDF<br>
will stop recursing if it finds that file and just use the info it<br>
contains.<br>
<br>
-Eric<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr">Wilfredo Velázquez-Rodríguez<br></div></div></div></div>