cpython (merge 3.6 -> default): Merge 3.6 (issue #28635)

https://hg.python.org/cpython/rev/48fb6a4cb5f8 changeset: 105383:48fb6a4cb5f8 parent: 105381:07d8272d61e7 parent: 105382:52038705827d user: Yury Selivanov <yury@magic.io> date: Mon Nov 28 11:45:58 2016 -0500 summary: Merge 3.6 (issue #28635) 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