[asdf-devel] Two questions
Christophe Rhodes
csr21 at cantab.net
Wed Sep 30 10:38:01 UTC 2009
Nick Levine <ndl at ravenbrook.com> writes:
> 1. Problems with the :feature feature.
It's the "asdf:feature feature", not the ":feature feature".
> (asdf:defsystem foo
> :components ((:file "pkg")
> (:file "code")
> (:file "foo" :depends-on ((:feature :frob)))))
>
> If :frob is not on *features*, load-system gives me:
>
> Error: Bad dependency (FEATURE FROB). Dependencies must be
> (:version <version>), (:feature <feature>), or a name
>
> If :frob is a *feature* I get a different error:
>
> Error: Error component :FROB not found, required by #<CL-SOURCE-FILE
> "foo" #x8B7A3E6>
>
> Did I misunderstand something?
You'll probably also want :if-component-dep-fails :ignore, if the effect
you want is for foo simply not to be loaded if :frob is not present on
*features*.
> 2. Suppose I would like some code to run at compile-time / load-time
> to determine where the fasls should live (e.g. hypothetically, in a
> subdirectory named after a timestamp, or according to what patches I
> have loaded). How do I express this?
With an :around method on asdf:output-files. Note that this typically
shouldn't live with any given system definition, but in your own init
files or equivalent -- the philosophical point is that asdf the software
merely describes the system and (approximately) how to build it, and
it's a matter of local or user policy as to where the output files end
up.
Best,
Christophe
More information about the asdf-devel
mailing list