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