cpython (3.6): Issue #28635: Document Python 3.6 opcode changes

https://hg.python.org/cpython/rev/52038705827d changeset: 105382:52038705827d branch: 3.6 parent: 105377:20f3636d396f user: Yury Selivanov <yury@magic.io> date: Mon Nov 28 11:45:36 2016 -0500 summary: Issue #28635: Document Python 3.6 opcode changes Thanks to Serhiy Storchaka for pointing out the missing notes. Patch by Elvis Pranskevichus. files: Doc/whatsnew/3.6.rst | 34 ++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -2240,3 +2240,37 @@ * :c:func:`Py_Exit` (and the main interpreter) now override the exit status with 120 if flushing buffered data failed. See :issue:`5319`. + + +CPython bytecode changes +------------------------ + +There have been several major changes to the :term:`bytecode` in Python 3.6. + +* The Python interpreter now uses a 16-bit wordcode instead of bytecode. + (Contributed by Demur Rumed with input and reviews from + Serhiy Storchaka and Victor Stinner in :issue:`26647` and :issue:`28050`.) + +* The new :opcode:`FORMAT_VALUE` and :opcode:`BUILD_STRING` opcodes as part + of the :ref:`formatted string literal <whatsnew36-pep498>` implementation. + (Contributed by Eric Smith in :issue:`25483` and + Serhiy Storchaka in :issue:`27078`.) + +* The new :opcode:`BUILD_CONST_KEY_MAP` opcode to optimize the creation + of dictionaries with constant keys. + (Contributed by Serhiy Storchaka in :issue:`27140`.) + +* The function call opcodes have been heavily reworked for better performance + and simpler implementation. + The :opcode:`MAKE_FUNCTION`, :opcode:`CALL_FUNCTION`, + :opcode:`CALL_FUNCTION_KW` and :opcode:`BUILD_MAP_UNPACK_WITH_CALL` opcodes + have been modified, the new :opcode:`CALL_FUNCTION_EX` and + :opcode:`BUILD_TUPLE_UNPACK_WITH_CALL` have been added, and + ``CALL_FUNCTION_VAR``, ``CALL_FUNCTION_VAR_KW`` and ``MAKE_CLOSURE`` opcodes + have been removed. + (Contributed by Demur Rumed in :issue:`27095`, and Serhiy Storchaka in + :issue:`27213`, :issue:`28257`.) + +* The new :opcode:`SETUP_ANNOTATIONS` and :opcode:`STORE_ANNOTATION` opcodes + have been added to support the new :term:`variable annotation` syntax. + (Contributed by Ivan Levkivskyi in :issue:`27985`.) -- Repository URL: https://hg.python.org/cpython
participants (1)
-
yury.selivanov