]> granicus.if.org Git - python/commitdiff
Issue #28635: Document Python 3.6 opcode changes
authorYury Selivanov <yury@magic.io>
Mon, 28 Nov 2016 16:45:36 +0000 (11:45 -0500)
committerYury Selivanov <yury@magic.io>
Mon, 28 Nov 2016 16:45:36 +0000 (11:45 -0500)
Thanks to Serhiy Storchaka for pointing out the missing notes.

Patch by Elvis Pranskevichus.

Doc/whatsnew/3.6.rst

index 60136ad47e46ee1b07aa70b4e2196b04e08db0ba..3beea09c646142b1408b1b7156d74acc245dbd8f 100644 (file)
@@ -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`.)