Decreases the size of each frame object by 32 bytes. The 4 ints are already in the PyCodeObject. Well, 2 are in there directly (co_nlocals and co_stacksize). The other 2 are the tuple lengths of co_cellvars and co_freevars. I ran pybench before and after the patch. With the patch, the interpreter was .002 seconds slower, ie, noise. I get more variability than that with each recompile. Mostly the change is from using f->f_... to co->co_... ie, no difference in pointer derefs, just deref a different pointer. I don't see a good reason to duplicate the data.
Logged In: YES user_id=33168 Heh, my math sucks. It should be 16 bytes, not 32. Though I got rid of 1 more (f_restricted), so it's really 20 bytes now. I need to clean up the patch and attach here.