@@ -2240,3 +2240,37 @@ Changes in the C API
22402240
22412241* :c:func: `Py_Exit ` (and the main interpreter) now override the exit status
22422242 with 120 if flushing buffered data failed. See :issue: `5319 `.
2243+
2244+
2245+ CPython bytecode changes
2246+ ------------------------
2247+
2248+ There have been several major changes to the :term: `bytecode ` in Python 3.6.
2249+
2250+ * The Python interpreter now uses a 16-bit wordcode instead of bytecode.
2251+ (Contributed by Demur Rumed with input and reviews from
2252+ Serhiy Storchaka and Victor Stinner in :issue: `26647 ` and :issue: `28050 `.)
2253+
2254+ * The new :opcode: `FORMAT_VALUE ` and :opcode: `BUILD_STRING ` opcodes as part
2255+ of the :ref: `formatted string literal <whatsnew36-pep498 >` implementation.
2256+ (Contributed by Eric Smith in :issue: `25483 ` and
2257+ Serhiy Storchaka in :issue: `27078 `.)
2258+
2259+ * The new :opcode: `BUILD_CONST_KEY_MAP ` opcode to optimize the creation
2260+ of dictionaries with constant keys.
2261+ (Contributed by Serhiy Storchaka in :issue: `27140 `.)
2262+
2263+ * The function call opcodes have been heavily reworked for better performance
2264+ and simpler implementation.
2265+ The :opcode: `MAKE_FUNCTION `, :opcode: `CALL_FUNCTION `,
2266+ :opcode: `CALL_FUNCTION_KW ` and :opcode: `BUILD_MAP_UNPACK_WITH_CALL ` opcodes
2267+ have been modified, the new :opcode: `CALL_FUNCTION_EX ` and
2268+ :opcode: `BUILD_TUPLE_UNPACK_WITH_CALL ` have been added, and
2269+ ``CALL_FUNCTION_VAR ``, ``CALL_FUNCTION_VAR_KW `` and ``MAKE_CLOSURE `` opcodes
2270+ have been removed.
2271+ (Contributed by Demur Rumed in :issue: `27095 `, and Serhiy Storchaka in
2272+ :issue: `27213 `, :issue: `28257 `.)
2273+
2274+ * The new :opcode: `SETUP_ANNOTATIONS ` and :opcode: `STORE_ANNOTATION ` opcodes
2275+ have been added to support the new :term: `variable annotation ` syntax.
2276+ (Contributed by Ivan Levkivskyi in :issue: `27985 `.)
0 commit comments