[asdf-devel] Insufficient :if-component-dep-fails compatibility for nibbles

Faré fahree at gmail.com
Wed Dec 19 01:09:15 UTC 2012

stassats remarks that my if-component-dep-fails compatibility code
might be enough to compile sb-rotate-byte, but nibbles not so.

Indeed, it so appears that the semantics of the (feature ...)
pseudo-operation (note: note a pseudo-component) is that a component
depends on not just on its local feature, but on all the recursive
features of all the components and subcomponents it depends-on. This
means that you really can't untangle that from the entire traverse
protocol. Moreover, since the visit protocol does not cache dependency
on a missing feature, the previous implementation had cost O(n^2) on
the size of a module, instead of O(n).

I really don't want to tuck that horror back into the traversal
algorithm. I implemented the "compatibility mode" with an eye on all
people with old versions of SBCL, who may have a hard time upgrading
it. On the other hand, I believe that people who upgrade asdf can
easily upgrade nibbles, too.

Nathan, can you use #+sbcl and similar other conditionals in your
nibbles.asd instead of :if-component-dep-fails? That would really help
with compatibility, without requiring ASDF to support something I
really want out of the implementation.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Vision is the art of seeing what is invisible to others. — Jonathan Swift

More information about the asdf-devel mailing list