[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
- Previous message: [Python-Dev] Why is Bytecode the way it is?
- Next message: [Python-Dev] reporting possible bugs in Python 2.4a1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
>> 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
- Previous message: [Python-Dev] Why is Bytecode the way it is?
- Next message: [Python-Dev] reporting possible bugs in Python 2.4a1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]