[Python-Dev] [ANN] VPython 0.1

skip at pobox.com skip at pobox.com
Thu Oct 23 17:19:45 CEST 2008


    Jakob> David Gregg (and friends) recently published a paper comparing
    Jakob> stack based and register based VMs for Java and found that
    Jakob> register based VMs were substantially faster. The main reason for
    Jakob> this appears to be the absence of the various LOAD_ instructions
    Jakob> in a register VM.

Back in the day (2001?) with the help of Tim Peters and others here I wrote
most of what was necessary to convert from a stack-based to a register-based
virtual machine for CPython.  I had trouble with a couple VM instructions.
If memory serves correctly, exec was a problem because it could push a
variable number of results on the stack.  I never completed the project
because the instruction set kept growing and I couldn't keep up.  Still, it
looked promising because it avoided lots of intermediate loads and stores.

    Jakob> ``Cell'' is, unfortunately, hardcoded into Vmgen. I could either
    Jakob> patch that or run ceval-vm.i through sed or something.

If the patch is to work and eventually be accepted it will have to be
changed, probably with a little downstream find/replace.  You might want to
also file a bug report to the Vmgen folks.  If Vmgen is generating these
names the authors should really know to try to avoid name clashes.

Skip


More information about the Python-Dev mailing list