[asdf-devel] Incrementally extending the source registry?

Faré fahree at gmail.com
Sat Oct 9 03:52:09 UTC 2010

On 8 October 2010 22:56, Zach Beane <xach at xach.com> wrote:
> Daniel Herring <dherring at tentpost.com> writes:
>> On Fri, 8 Oct 2010, Zach Beane wrote:
>>> Say I download a tarball that has a number of projects in it:
>>>  $ tar xzvf fooprojects.tgz
>>>  fooprojects/neato/neato.asd
>>>  fooprojects/neato/neato.lisp
>>>  fooprojects/stuff/stuff.asd
>>>  fooprojects/stuff/stuff.lisp
>>>  fooprojects/xyz/xyz.asd
>>>  fooprojects/xyz/xyz.lisp
>>> If these are now unpacked in ~/src/fooprojects/, how can I add that tree
>>> to my ASDF source registry by calling ASDF functions?
>> Umm, drop a few :directory definitions or one :tree definition in
>> ~/.config/common-lisp/source-registry.conf.d/NN-fooproject.conf
>> See
>> http://common-lisp.net/project/asdf/asdf/Configuring-ASDF.html
>> http://common-lisp.net/project/asdf/asdf/Controlling-where-ASDF-searches-for-systems.html
>>> Say a few minutes later I download another tarball with a number of
>>> projects in it:
>> ...
>>> If these are now unpacked in ~/src/barprojects/, how can I add that tree
>>> to my ASDF soruce registry by calling ASDF functions, without losing the
>>> previous fooprojects registration?
>> Same, but in NN-barproject.conf
> Is there any way to do it in the running system only, i.e. without
> writing out files?
Two solutions:

1- push directories to the good old asdf:*central-registry*
2- maintain your own *source-registry* parameter, add stuff to it,
then give it as parameter to asdf:initialize-source-registry every
time you wish to recompute the thing. Hopefully, filesystem caches
will make this operation faster the second time around.
3- come up with a nice API, implement it, send in a patch.

I'm not super interested in developing this API myself, but I can see
why it's a good thing and will happily help fix it and merge it.

Pray: To ask that the laws of the universe be annulled in behalf of
a single petitioner confessedly unworthy. — Ambrose Bierce

More information about the asdf-devel mailing list