now works correctly (previously it silently returned the first python
module in the file). (Contributed by Václav Šmilauer in :issue:`16421`.)
-* A new opcode, :opcode:`LOAD_CLASSDEREF`, has been added to fix a bug in the
+* A new opcode, :opcode:`!LOAD_CLASSDEREF`, has been added to fix a bug in the
loading of free variables in class bodies that could be triggered by certain
uses of :ref:`__prepare__ <prepare>`. (Contributed by Benjamin Peterson in
:issue:`17853`.)
* 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
+ 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
+ :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
+* 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`.)
CPython bytecode changes
------------------------
-There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`CALL_METHOD`.
+There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`!CALL_METHOD`.
(Contributed by Yury Selivanov and INADA Naoki in :issue:`26110`.)
-The :opcode:`STORE_ANNOTATION` opcode has been removed.
+The :opcode:`!STORE_ANNOTATION` opcode has been removed.
(Contributed by Mark Shannon in :issue:`32550`.)
cleaning-up code for :keyword:`break`, :keyword:`continue` and
:keyword:`return`.
- Removed opcodes :opcode:`BREAK_LOOP`, :opcode:`CONTINUE_LOOP`,
- :opcode:`SETUP_LOOP` and :opcode:`SETUP_EXCEPT`. Added new opcodes
- :opcode:`ROT_FOUR`, :opcode:`BEGIN_FINALLY`, :opcode:`CALL_FINALLY` and
- :opcode:`POP_FINALLY`. Changed the behavior of :opcode:`END_FINALLY`
- and :opcode:`WITH_CLEANUP_START`.
+ Removed opcodes :opcode:`!BREAK_LOOP`, :opcode:`!CONTINUE_LOOP`,
+ :opcode:`!SETUP_LOOP` and :opcode:`!SETUP_EXCEPT`. Added new opcodes
+ :opcode:`!ROT_FOUR`, :opcode:`!BEGIN_FINALLY`, :opcode:`!CALL_FINALLY` and
+ :opcode:`!POP_FINALLY`. Changed the behavior of :opcode:`!END_FINALLY`
+ and :opcode:`!WITH_CLEANUP_START`.
(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka in
:issue:`17611`.)