Kaydet (Commit) 74bfcc31 authored tarafından Brett Cannon's avatar Brett Cannon Kaydeden (comit) GitHub

bpo-28810: Document remaining bytecode changes in 3.6 (GH-651) (GH-808)

(cherry picked from commit 8f9e1bbf)
üst 8c8785b2
...@@ -20,6 +20,10 @@ interpreter. ...@@ -20,6 +20,10 @@ interpreter.
between versions of Python. Use of this module should not be considered to between versions of Python. Use of this module should not be considered to
work across Python VMs or Python releases. work across Python VMs or Python releases.
.. versionchanged:: 3.6
Use 2 bytes for each instruction. Previously the number of bytes varied
by instruction.
Example: Given the function :func:`myfunc`:: Example: Given the function :func:`myfunc`::
...@@ -210,6 +214,11 @@ operation is being performed, so the intermediate analysis object isn't useful: ...@@ -210,6 +214,11 @@ operation is being performed, so the intermediate analysis object isn't useful:
This generator function uses the ``co_firstlineno`` and ``co_lnotab`` This generator function uses the ``co_firstlineno`` and ``co_lnotab``
attributes of the code object *code* to find the offsets which are starts of attributes of the code object *code* to find the offsets which are starts of
lines in the source code. They are generated as ``(offset, lineno)`` pairs. lines in the source code. They are generated as ``(offset, lineno)`` pairs.
See :source:`Objects/lnotab_notes.txt` for the ``co_lnotab`` format and
how to decode it.
.. versionchanged:: 3.6
Line numbers can be decreasing. Before, they were always increasing.
.. function:: findlabels(code) .. function:: findlabels(code)
...@@ -1105,8 +1114,13 @@ All of the following opcodes use their arguments. ...@@ -1105,8 +1114,13 @@ All of the following opcodes use their arguments.
.. opcode:: HAVE_ARGUMENT .. opcode:: HAVE_ARGUMENT
This is not really an opcode. It identifies the dividing line between This is not really an opcode. It identifies the dividing line between
opcodes which don't take arguments ``< HAVE_ARGUMENT`` and those which do opcodes which don't use their argument and those that do
``>= HAVE_ARGUMENT``. (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively).
.. versionchanged:: 3.6
Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT``
ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument.
.. _opcode_collections: .. _opcode_collections:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment