[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