[Python-Dev] Why is Bytecode the way it is? (original) (raw)

Paul Prescod paul at prescod.net
Thu Jul 8 16:14:42 CEST 2004


Raymond Hettinger wrote:

... The eval loop is already pretty tight.

Compared to what? Total runtime of Python programs? Psycho? Java implementations?

I suppose the statement is based on the observation that compiling away the eval loop by using Pyrex or Python2C results in very little speed gain.

As for tweaking opcodes, the biggest remaining wins are in LOADATTR and CALLFUNCTION. They've been specialized enough that making further improvements is non-trivial.

I'm really not even proposing a change to Python as much as trying to understand why it is the way it is. I can see how a stack is helpful for evaluating deeply nested expressions (although temporary variables seems another good valid approach). I just don't see the payoff for shuffling variables from locals onto the stack and back into the locals table.

Paul Prescod



More information about the Python-Dev mailing list