[Python-Dev] Re: proto-pep: How to change Python's bytecode
tjreedy at udel.edu
Sat Dec 25 02:54:32 CET 2004
"Brett C." <bac at ocf.berkeley.edu> wrote in message
news:41CC7F67.9070009 at ocf.berkeley.edu...
At to the title, bytecodes are a property of the CPython implementation,
not of Python itself. Since I think the distinction is quite important to
maintain, I would insert the missing 'C' and everywhere else as
> After implementing over 10 new opcodes for my thesis I figured I should
> write down the basic steps in an info PEP so that there is enough
> guidelines with this PEP and PEP 306 to cover the bases on changes to the
> language itself.
Over the last several years, various people have reported experimenting
with CPython's bytecodes. I wonder if it would be helpful to have a
respository of the results, in one place, for new experimenters and curious
people to peruse.
> Anyway, let me know if I seem to be missing anything or have something to
As I said, the importanct 'C' qualifier.
> PEP: XXX
> Title: How to change Python's bytecode
> Python source code is compiled down to something called bytecode.
Suggested replacements in quotes:
"CPython compiles Python source code to something called bytecode."
> This bytecode (which can be viewed as sequences of opcodes)
> defines what Python is capable of.
This is backwards. "The language, as defined in the Reference Manual,
determines what bytecodes are needed (collectively, not one by one) for a
> As such, knowing how to add, remove, or change the bytecode is
> important to do properly when changing the abilities of the Python
"Therefore, changes in the language may require changes in the set of
bytecodes. In addition, changing the bytecode set for a given definition
may result in desireable changes in the interpreter behavior. This
document describes how to do so for either reason."
> While changing Python's bytecode is not a frequent occurence, it still
/P/CP/ Experiments are much more frequent than committed changes -- all
of which start as experiments.
Terry J. Reedy
More information about the Python-Dev