[pypy-dev] Question about byte-code hacking
steve at pearwood.info
Fri Sep 23 11:27:44 CEST 2011
Benjamin Peterson wrote:
> 2011/9/23 Steven D'Aprano <steve at pearwood.info>:
>> Hi guys,
>> Over on the python-ideas mailing list, there is a long thread about the
>> default argument hack in functions, used for micro-optimizations,
>> early-binding, and monkey-patching. Various alternatives are being argued
>> about. One proposal put forward involves bytecode manipulations to change
>> global lookups to local so that one could have a decorator that "injects" a
>> value into a copy of the function.
>> What's the PyPy position on bytecode hacking? Good, bad, evil, don't mind
>> either way?
> First of all, it's going to be implementation defined. So, you can't
> expect *any* bytecode you create on one VM to work on another.
> Secondly, it's useless for speed when you have a JIT.
I don't expect that the same bytecode would work on multiple
implementations. Obviously each implementation would either need its own
bytecode manipulation, or simply refuse to support it.
Regardless of whether it is useless for speed or not, it is legal
syntax. Default arguments are also used for early binding, which has
nothing to do with speed.
So the question is: would it be a burden for PyPy to make any guarantees
about the stability of bytecode?
More information about the pypy-dev