[asdf-devel] Repe­at f-ile compilation

Сергей Катревич linkfly1 at newmail.ru
Sat Oct 8 21:28:28 UTC 2011


Thanks, cool refactoring!

> 1- It makes ASDF more robust against implementations that for some reason
>  would allow only one call to (call-next-method).

I am don't know about this.

But if:

> CLHS does say the function has lexical scope and indefinite extent.

... this is problem of implementation, right?

> The only previously allowed extension it prevents is
>  defining :before or :after methods ...

The main proplem is that those who use :perform-with-restarts getted not pretty surprise. And therefore need to either warn them of the incompatibility or look the other way.

I think you understand me.

I do not like only one thing: restart try-reCOMPILING semantically not bind with load-op operation. Although i'am not sure that it is necessary to change ...

Чтв 06 Окт 2011 20:21:02 +0400, Far <fahree at gmail.com> написал:
> 2011/10/6 Сергей Катревич <linkfly1 at newmail.ru>:
> > O please do not rush. Simplify perform-with-restart is good way. But your
> > last patch:
> >    - or makes the new version asdf is not backward compatible
> >    - or provides an error (implicitly, rarely appears)
> >
> Can you explain in what situation my patch causes an error?
> 
> If I understand correctly, the only functional difference wrt your version
> is that I explicitly call (perform o c) instead of going through (c-n-m).
> 
> As for the incompatible replacement of (call-next-method)
> by an explicit (perform o c):
> 
> 1- It makes ASDF more robust against implementations that for some reason
>  would allow only one call to (call-next-method). It wasn't clear to me
>  that all implementations behave well when that's not the case; however,
>  the CLHS does say the function has lexical scope and indefinite extent.
> 
> 2- The only previously allowed extension it prevents is
>  defining :before or :after methods on superclasses
>  of load-op and cl-source-file. I can imagine a use for that: logging,
>  though then you might as well log around perform rather than p-w-r.
>  This does not otherwise affect inline methods on perform-with-restarts;
>  not that anyone defines any such method AFAICT.
> 
> In the end, I think your argument wins, and in 2.017.8,
> I return to (c-n-m) and simplify things further:
> * returned to (call-next-method) in the load-op method, make it a loop.
> * moved the main restart from perform-plan to an :around method
>  of perform-with-restarts
> * removed the redundant method for compile-op, since the main :around
>  method already provides a restart that does the very same.
> 
> NB: my 2.017.8 does pass all the tests, including
> test-retry-loading-component-1.script and
> test/test-try-recompiling-1.script
> that already test this functionality — thanks a lot to gwking!
> 
> NB2: Since there's more coding involved,
> I'm pushing release candidacy to next week, and release two weeks from now.
> 
> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org




More information about the asdf-devel mailing list