[asdf-devel] How to specify to ASDF to load system from current directory?

Robert Goldman rpgoldman at sift.net
Wed Nov 6 20:00:23 UTC 2013


Faré wrote:
> On Wed, Nov 6, 2013 at 10:51 AM, Zach Beane <xach at xach.com> wrote:
>> Mirko Vukovic <mirko.vukovic at gmail.com> writes:
>>
>>> I have a system sitting in ~/quicklisp/local-dists and a development
>>> version sitting in ~/.../lisp-development/
>>>
>>> I would like ASDF to open the latter one.  I use asdf:load-system.
>>>
>>> I cd to the development directory and start slime there.  (asdf:load-system
>>> ...) still tries to fetch the version in the
>>> quicklisp directory.
>> One easy way:
>>
>>   (push '*default-pathname-defaults* asdf:*central-registry*)
>>
> I disrecommend pushing '*default-pathname-defaults* into the
> *central-registry* — that makes system loading less predictable,
> depending on the binding of this variable.
>
> Instead, I recommend pushing an actual pathname object (that may
> happen to be the current value of *d-p-d* or of (uiop:getcwd), if you
> insist), so that the value remains well-defined in the face of
> rebinding of the variable.
>
> Or better, edit your ~/.config/common-lisp/source-registry.conf and
> register your software there. Or for temporary stuff, export a
> CL_SOURCE_REGISTRY, or call asdf:initialize-source-registry with a
> parameter.

So something like 

(DEFUN ADD-SOURCE-DIRECTORY-TO-ASDF (DIR)
  (ASDF:INITIALIZE-SOURCE-REGISTRY `(:source-registry (:DIRECTORY ,DIR) :inherit-configuration)))

and

(ADD-SOURCE-DIRECTORY-TO-ASDF (uiop:getcwd))
?




More information about the asdf-devel mailing list