[asdf-devel] Repeat 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