summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrandt Bucher <brandt@python.org>2021-11-12 13:21:45 (GMT)
committerGitHub <noreply@github.com>2021-11-12 13:21:45 (GMT)
commit8f1b71de731dda668aede7c9b34d0ad7afb8f6a8 (patch)
tree4c6a781883b3842d5c608d85ca7b2d0bb547f3ed
parente501d70b347c5093018d12482c30a7a98aab86d0 (diff)
downloadcpython-8f1b71de731dda668aede7c9b34d0ad7afb8f6a8.zip
cpython-8f1b71de731dda668aede7c9b34d0ad7afb8f6a8.tar.gz
cpython-8f1b71de731dda668aede7c9b34d0ad7afb8f6a8.tar.bz2
bpo-45711: Re-bump the magic number and update doc (GH-29528)
-rw-r--r--Doc/library/dis.rst5
-rw-r--r--Doc/whatsnew/3.11.rst2
-rw-r--r--Lib/importlib/_bootstrap_external.py7
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__'