On Tue, Jul 9, 2013 at 2:41 PM, Robert Goldman rpgoldman@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.