[asdf-devel] ASDF traverse changed behavior?
Robert Goldman
rpgoldman at sift.info
Thu Mar 18 15:05:42 UTC 2010
On 3/18/10 Mar 18 -9:02 AM, Juan Jose Garcia-Ripoll wrote:
> On Thu, Mar 18, 2010 at 2:55 PM, james anderson <james.anderson at setf.de
> <mailto:james.anderson at setf.de>> wrote:
>
>
> if asdf were to adopt an 11.1.2.1.2-rule, asdf-ecl.lisp would
> require a change.
>
> it would not be supported for an extension to extend 'asdf:load-op
> such that load-op itself specialized an operation-done-p :around
> method which forced complete traversal results. it would be be
> necessary to specialize the load-op class as, for example,
> collect-op, and specialize operation-done-p on that class. in which
> case its own primary method could always return nil and an :around
> method would not be necessary.
>
>
> What you suggest can not be done. While load-op dependencies are
> automatically added to all systems by some hard-coded logic in
> DEFSYSTEM, if we create a collect-op, traverse will not find any
> dependencies that are related to it and it will refuse to, say, traverse
> cl-ppcre when stumpwm depends on it.
>
> A potential aternative would be to remove the :around method and use
> *forcing* but this again does not work, because *forcing* only forces
> the system we act upon, and not the dependecies it has.
>
> So right now there is no way to traverse the ASDF system tree without
> such a hack.
FWIW, I think we are in agreement that ASDF-ECL should not be subject to
the full stringency of the 11.1.2.1.2 rule, because it's part of ASDF
proper.
OTOH, it's probably a good idea to figure out the implications of such a
rule on true extensions, so I don't think James's attentions here are
wasted.
Best,
Robert
More information about the asdf-devel
mailing list