diff options
author | Brett Cannon <brettcannon@users.noreply.github.com> | 2017-03-24 21:18:53 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-24 21:18:53 (GMT) |
commit | 74bfcc314b188e1e8c90e442270e36d6510755ee (patch) | |
tree | 9d5f1e2de91bd0ece50d95b17003770f4ce6315c /Doc/library | |
parent | 8c8785b2f8e4048cef350f89c686266f4519b67c (diff) | |
download | cpython-74bfcc314b188e1e8c90e442270e36d6510755ee.zip cpython-74bfcc314b188e1e8c90e442270e36d6510755ee.tar.gz cpython-74bfcc314b188e1e8c90e442270e36d6510755ee.tar.bz2 |
bpo-28810: Document remaining bytecode changes in 3.6 (GH-651) (GH-808)
(cherry picked from commit 8f9e1bbf2dbdf46a0bf920279568a31460043376)
Diffstat (limited to 'Doc/library')
-rw-r--r-- | Doc/library/dis.rst | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 11d0569..c795782 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -20,6 +20,10 @@ interpreter. between versions of Python. Use of this module should not be considered to 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`:: @@ -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`` 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. + 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) @@ -1105,8 +1114,13 @@ All of the following opcodes use their arguments. .. opcode:: HAVE_ARGUMENT This is not really an opcode. It identifies the dividing line between - opcodes which don't take arguments ``< HAVE_ARGUMENT`` and those which do - ``>= HAVE_ARGUMENT``. + opcodes which don't use their argument and those that do + (``< 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: |