[Python-Dev] Anonymous blocks: Thunks or iterators?
jimjjewett at gmail.com
Fri Apr 29 20:33:54 CEST 2005
On 4/29/05, Brian Sabbey <sabbey at u.washington.edu> wrote:
> Jim Jewett wrote:
> > The only members that need special attention are (f_code, f_lasti)
> > and possibly (f_blockstack, f_iblock).
> You don't even need to take care of f_code. The thunk and its surrounding
> function can share the same code. The thunk gets compiled into the
> function the same way the body of a for loop would.
This only works if you already know what the thunk's code will be
when you compile the function. (Just splicing it in messes up jump
> One also needs to store f_back, and, to avoid exception weirdness,
f_back lists the previous stack frame (which shouldn't change during
a thunk), and f_exc_XXX is for the most recent exception -- I don't see
any reason to treat thunks differently from loop bodies in that regard.
 If the thunk calls another function (that needs its own frame), then
that is handled the same as any regular function call.
More information about the Python-Dev