[asdf-devel] FInding a system file in the current directory

Zach Beane xach at xach.com
Sun Oct 3 23:56:21 UTC 2010


Robert Goldman <rpgoldman at sift.info> writes:

> On 10/3/10 Oct 3 -6:17 PM, Dave Penton wrote:
>> Can asdf find a file containing a system definition in the current working directory?
>> 
>> (Yes, I have read ch.7 of the manual. It may start to make sense on the third reading, but so far not much joy :-)
>
> I think a problem with this question is that the notion of "current
> working directory" isn't always to the point in Common Lisp.  There
> seems to be a sense that *default-pathname-defaults* will be
> synchronized with the working directory of the lisp process (cf
> http://www.lispworks.com/documentation/HyperSpec/Body/v_defaul.htm
> "Initial Value:  An implementation-dependent pathname, typically in the
> working directory that was current when Common Lisp was started up.")
> but it's really *default-pathname-defaults* you should be asking about
> and not CWD.
>
> I have a vague memory that ASDF 1 provided a mechanism for putting
> *default-pathname-defaults* into your asdf:*central-registry*; I don't
> recall how this was done....
>
> If you are not using Fare's new configuration language, you might just
> be able to do (push *default-pathname-defaults* asdf:*central-registry*).

Values in *CENTRAL-REGISTRY* are evaluated before use, so you can use
this:

  (pushnew 'cl:*default-pathname-defaults* asdf:*central-registry*)

It worked the same in ASDF 1.

> The question is "why do you want to do this, instead of using Fare's
> language or configuring by setting asdf:*central-registry*?"  If we had
> a better sense of the answer to that question, we could probably provide
> better assistance.

Adding a single directory with Fare's configuration language is pretty
verbose. Even pushing the path to *central-registry* is cumbersome. It's
easier to ,cd in slime.

Zach





More information about the asdf-devel mailing list