[Python-Dev] MAKE_FUNCTION simplification (original) (raw)
Nikita Nemkin nikita at nemkin.ru
Thu Apr 14 12:03:01 EDT 2016
- Previous message (by thread): [Python-Dev] MAKE_FUNCTION simplification
- Next message (by thread): [Python-Dev] MAKE_FUNCTION simplification
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Apr 14, 2016 at 8:27 PM, Guido van Rossum <guido at python.org> wrote:
Great analysis! What might stand in the way of adoption is concern for bytecode manipulation libraries that would have to be changed. What might encourage adoption would be a benchmark showing this saves a lot of time.
Personally I'm expecting it won't make much of a difference for real programs since almost always the cost of creating the function is dwarfed by the (total) cost of running it. But Python does create a lot of functions, and there's also lambdas.
This change alone is very unlikely to have a measurable performance impact. The intention is to clean up ceval.c/compile.c a bit, nothing more. If many other opcodes were somehow slimmed down in the similar fashion, then we might (or might not) see perf gains.
For example, most slot dispatch opcodes can be compressed into a single opcode+slot index with inlined dispatch logic, instead of each one individually calling C API functions...
There's also talk of switching to wordcode, in a different thread. Maybe the idea would be easier to introduce there? (Bytecode libraries would have to change anyways, so the additional concern for this change would be minimal.)
Wordcode can benefit from this change, because it guarantees single-byte MAKE_FUNCTION oparg.
I think that Python should make bytecode explicitly unstable and subject to change with any major release. The potential for a faster Python interpreter (or simple JIT) is huge; requiring bytecode compatibility will slow down any progress in this area.
- Previous message (by thread): [Python-Dev] MAKE_FUNCTION simplification
- Next message (by thread): [Python-Dev] MAKE_FUNCTION simplification
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]