From 8f1b71de731dda668aede7c9b34d0ad7afb8f6a8 Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Fri, 12 Nov 2021 05:21:45 -0800 Subject: bpo-45711: Re-bump the magic number and update doc (GH-29528) --- Doc/library/dis.rst | 5 ++++- Doc/whatsnew/3.11.rst | 2 ++ Lib/importlib/_bootstrap_external.py | 7 +++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 4a80404..5fe9f65 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -873,10 +873,13 @@ All of the following opcodes use their arguments. .. opcode:: JUMP_IF_NOT_EXC_MATCH (target) Tests whether the second value on the stack is an exception matching TOS, - and jumps if it is not. Pops two values from the stack. + and jumps if it is not. Pops one value from the stack. .. versionadded:: 3.9 + .. versionchanged:: 3.11 + This opcode no longer pops the active exception. + .. opcode:: JUMP_IF_TRUE_OR_POP (target) diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 59a230f..0767a6a 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -332,6 +332,8 @@ CPython bytecode changes * Added :opcode:`COPY`, which pushes the *i*-th item to the top of the stack. The item is not removed from its original location. +* :opcode:`JUMP_IF_NOT_EXC_MATCH` no longer pops the active exception. + Deprecated ========== diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index f6f54af6..303ca72 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -366,7 +366,10 @@ _code_type = type(_write_atomic.__code__) # Python 3.11a1 3461 (JUMP_ABSOLUTE must jump backwards) # Python 3.11a2 3462 (bpo-44511: remove COPY_DICT_WITHOUT_KEYS, change # MATCH_CLASS and MATCH_KEYS, and add COPY) -# Python 3.11a3 3463 (Merge numeric BINARY_*/INPLACE_* into BINARY_OP) +# Python 3.11a3 3463 (bpo-45711: JUMP_IF_NOT_EXC_MATCH no longer pops the +# active exception) +# Python 3.11a3 3464 (bpo-45636: Merge numeric BINARY_*/INPLACE_* into +# BINARY_OP) # # MAGIC must change whenever the bytecode emitted by the compiler may no @@ -376,7 +379,7 @@ _code_type = type(_write_atomic.__code__) # Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array # in PC/launcher.c must also be updated. -MAGIC_NUMBER = (3463).to_bytes(2, 'little') + b'\r\n' +MAGIC_NUMBER = (3464).to_bytes(2, 'little') + b'\r\n' _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c _PYCACHE = '__pycache__' -- cgit v0.12