On Sat, Feb 22, 2014 at 2:56 PM, Robert P. Goldman <rpgoldman@sift.info> wrote:
I see that the grammar of dependencies in the manual specifies that
:version appears as a keyword symbol, but feature appears as *not* a
keyword symbol.
Is this a documentation bug? I think so, but you know the actual
execution semantics better.
If it is a doc bug, I'll fix it right away.
Beware that there are two "feature" features
1- In a depends-on specification, as defined in find-component.lisp,
you can write (:feature <feature-expression> <dependency-spec>), where
the dependency link is valid if <feature-expression> is true as per
featurep. This feature was hidden in the ASDF 1 code, but I'm not
convinced this feature worked before ASDF
3,
when I fixed it for good.
Therefore, I'm pretty sure noone uses this feature.
2- In a component-depends-on method or in-order-to specification,
(feature foo) instead of (operation components...) then a missing
dependency error is raised. This was used in conjunction with the
ill-designed :if-component-dep-fails feature to provide conditional
dependency. This later feature was removed (minus a thin partial
compatibility layer for old SBCLs), because it was not compatible with
the fixed ASDF3 dependency model.
I suggest both features should probably be deprecated and removed, and
the :if-feature feature introduced in ASDF3, that actually works. If
any system anywhere uses these features, they should be fixed ASAP.
We should probably run a cl-test-grid test with these features
disabled. See patch attached.
NB: I obviously cannot commit this patch unless the maintainer wants
me to.
Robert,
this baby is yours. The diff above also doesn't remove
the misfeatures from the tests and documentation.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
The program isn't debugged until the last user is dead.