[asdf-devel] Re: software failures (with asdf 3?)

Faré fahree at gmail.com
Tue Jul 9 18:57:26 UTC 2013


On Tue, Jul 9, 2013 at 2:41 PM, Robert Goldman <rpgoldman at sift.info> wrote:
> Robert Goldman wrote:
>> Robert, you might want to look into this:
>> * in dependency-def, it should be (:feature @var{feature-expression}
>> @var{dependency-def})
>
> OK, I thought I understood this, but I don't.
>
> There's a second argument to :feature when used in a dependency-def, but
> not when it's used in a dependency?
>
In a :in-order-to spec, asdf:feature (not keyword:feature) can be used
instead of an operation specifier, to specify that the plan should
fail if the feature isn't present, which is then captured by
if-component-fails. This is a deprecated feature, with a braindead
design, and only remains as a compatibility mode for old versions of
SBCL's sb-bsd-sockets and sb-rotate-byte. I recommend you altogether
purge this mis-feature in a year or two.

> So we would see something like:
>
> :depends-on (:cl-ppcre (:feature :clx "clx-dependent-library"))
>
> and the semantics is
>
> If (member :clx *features*) then clx-dependent-library is a dependency.
>
> Correct?
>
Yes.

> Is there some reason why this isn't :if-feature or :when-feature?  Using
> :feature as a conditional seems odd....
>
That's how it was named in e7e468 when it was introduced, though with
a buggy implementation. Renaming it :when-feature may make sense. Note
that I called the component-if-feature slot keyword :if-feature, which
you may want to either distinguish
yourself from or copy. You could even add an optional else-clause to
an :if-feature.

Considering how it never worked until ASDF3, I might be the only one
to ever have used it, in exscribe, and I'll happily stop using it
while you either transition or purge the feature altogether. It's only
really useful at for a system's :depends-on.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
The worst thing about totalitarian regimes is not that they make people poor,
miserable and unfree — it's that they corrupt people's souls, and turning
everyone into a double-thinking, double-speaking liar for the sake of survival.



More information about the asdf-devel mailing list