[asdf-devel] Pushed :here-directive topic branch

Robert Goldman rpgoldman at sift.info
Wed Nov 24 14:19:36 UTC 2010


On 11/24/10 Nov 24 -7:21 AM, Zach Beane wrote:
> "Robert P. Goldman" <rpgoldman at sift.info> writes:
> 
>> By that I meant "you tell the users who check out your repository to include your conf file in their input locations configuration."
>>
>> My understanding is that this is done using :include ...
>>
> 
> So someone would copy the conf to
> e.g. ~/.config/common-lisp/source-source-registry.conf.d/ and then
> change *default-pathname-defaults* to the root of the project, and do an
> (asdf:initialize-source-registry)?
> 
> Zach

I was assuming that they would leave the conf where it was and add

(:include "/my/checkout/path/asdf.conf")

into one of his/her normal source registry .conf files.

The whole idea is not to have to do complicated monkeying around (as in
your example of messing with *default-pathname-defaults*).

That way, all the user needs to know is the location of the .conf file,
and all the provider of the repository has to know is the structure of
his repository.

I may not fully follow questions about this mechanism, because I think I
am working in a different style from others.

For lack of this :here mechanism, I have been sticking with the old
style manipulation of asdf:*central-registry*.  When I set up a source
repo, I provide people who check it out with a simple, one-sexp way of
configuring ASDF to use it.  This typically uses an ASD-FINDER library
of mine, which does directory tree search for .asd files in portable CL.
 Then, e.g., when I start up a lisp session typically the first thing I
do will be to execute a function like

(hydra)
(smite)
(circa)

These are all names of projects I'm working on currently, and the effect
of the command is to populate asdf:*central-registry* appropriately.
>From there I can use ASDF normally, now having it set up with the proper
set of libraries for the project in question.

This is necessary because typically the source repositories for these
projects contain different versions of different libraries.  In order to
get consistency across developers, we use no libraries except those in
the source repo (well, with the exception of SBCL contribs sometimes,
and we handle that by standardizing on a revision of SBCL to use).  The
source repositories are often clogged with Java code, in addition to
lisp code, meaning that simply using one of Fare's :tree directives can
be painful.

Hope that clarifies,
r







More information about the asdf-devel mailing list