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

Skip Montanaro skip at pobox.com
Thu Jul 8 23:52:51 CEST 2004


>> Perhaps we take the CPU analogy too far. Or perhaps there is
>> something deep I misunderstand.

Martin> Most certainly. This stuff is *way*, *extremely* more difficult
Martin> to write than it is to read. Just try and see for yourself. 

I wrote the rattlesnake VM (three-address model) ages ago (1.4 or 1.5?). I got it mostly to work, but never quite 100%. There were a couple instructions which were difficult to map into the register model for some reason. I suspect there may be more today, though moves to write a reasonable bytecode verifier may improve that situation. Even if I had gotten it to work 100%, I would have been left with the problem of tracking updates to the stack-based VM - an internal implementation detail don't forget - until a cutover to the register-based VM could be made, and there'd be no guarantees that would ever happen. (Keeping the stackless source sync'd with the main CPython source must be a challenging task for Christian Tismer.)

I still have the source if anyone's interested, though so much water has passed under the bridge now that it would only be useful as a rough guide. Forget "patch -p 0 < ..."!

Skip



More information about the Python-Dev mailing list