summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/whatsnew/3.6.rst34
1 files changed, 34 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
index 60136ad..3beea09 100644
--- a/Doc/whatsnew/3.6.rst
+++ b/Doc/whatsnew/3.6.rst
@@ -2240,3 +2240,37 @@ Changes in the C API
* :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`.)