On Mon, Jan 3, 2011 at 6:12 AM, Glyph Lefkowitz <gl...@twistedmatrix.com> wrote:
> Wouldn't this optimization break things like mocking out 'open' for testing 
> via 'module.open = fakeopen'?  I confess I haven't ever wanted to change 
> 'len' but that one seems pretty useful.

I am explicitly excluding open from this optimization, for that very reason.

> If CPython wants such optimizations, it should do what PyPy and its ilk do, 
> which is to notice the assignment, but recompile code in that module to 
> disable the fast path at runtime, preserving the existing semantics.

In general I am against duplicating bytecode -- it can blow up too
much. (It is an entirely appropriate technique for JIT compilers --
but my point here is that bytecode is different.) Recompiling a module
is not a trivial change -- for example, either code objects would have
to become mutable, or we'd have to track down all the code objects and
replace them. Neither sounds attractive to me.

-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to