Skip to content

Commit 87f02ef

Browse files
committed
Merge branch 'main' into add-sys.abi_info
# Conflicts: # Lib/test/test_sys.py # Misc/NEWS.d/next/Core_and_Builtins/2025-08-06-16-55-44.gh-issue-133143.l7CI9v.rst # Python/sysmodule.c
2 parents c0fcade + 1acb718 commit 87f02ef

File tree

4 files changed

+13
-4
lines changed

4 files changed

+13
-4
lines changed

Doc/c-api/init.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,12 @@ code, or when embedding the Python interpreter:
10201020
interpreter lock is also shared by all threads, regardless of to which
10211021
interpreter they belong.
10221022
1023+
.. versionchanged:: 3.12
1024+
1025+
:pep:`684` introduced the possibility
1026+
of a :ref:`per-interpreter GIL <per-interpreter-gil>`.
1027+
See :c:func:`Py_NewInterpreterFromConfig`.
1028+
10231029
10241030
.. c:type:: PyThreadState
10251031
@@ -1711,6 +1717,8 @@ function. You can create and destroy them using the following functions:
17111717
haven't been explicitly destroyed at that point.
17121718
17131719
1720+
.. _per-interpreter-gil:
1721+
17141722
A Per-Interpreter GIL
17151723
---------------------
17161724
@@ -1722,7 +1730,7 @@ being blocked by other interpreters or blocking any others. Thus a
17221730
single Python process can truly take advantage of multiple CPU cores
17231731
when running Python code. The isolation also encourages a different
17241732
approach to concurrency than that of just using threads.
1725-
(See :pep:`554`.)
1733+
(See :pep:`554` and :pep:`684`.)
17261734
17271735
Using an isolated interpreter requires vigilance in preserving that
17281736
isolation. That especially means not sharing any objects or mutable

Lib/test/test_tarfile.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3694,7 +3694,7 @@ def setUpClass(cls):
36943694
else:
36953695
raise AssertionError('Could not determine link resolution')
36963696
else:
3697-
cls.dotdot_resolves_early = True
3697+
cls.dotdot_resolves_early = False
36983698

36993699
@contextmanager
37003700
def check_context(self, tar, filter, *, check_flag=True):
@@ -3842,7 +3842,7 @@ def test_parent_symlink(self):
38423842
arc.add('current', symlink_to='.')
38433843

38443844
# effectively points to ./../
3845-
if self.dotdot_resolves_early:
3845+
if self.dotdot_resolves_early and os_helper.can_symlink():
38463846
arc.add('parent', symlink_to='current/../..')
38473847
else:
38483848
arc.add('parent', symlink_to='current/..')

Modules/gcmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ PyDoc_STRVAR(gc__doc__,
478478
"set_debug() -- Set debugging flags.\n"
479479
"get_debug() -- Get debugging flags.\n"
480480
"set_threshold() -- Set the collection thresholds.\n"
481-
"get_threshold() -- Return the current the collection thresholds.\n"
481+
"get_threshold() -- Return the current collection thresholds.\n"
482482
"get_objects() -- Return a list of all objects tracked by the collector.\n"
483483
"is_tracked() -- Returns true if a given object is tracked.\n"
484484
"is_finalized() -- Returns true if a given object has been already finalized.\n"

Python/sysmodule.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3698,6 +3698,7 @@ make_abi_info(void)
36983698
return NULL;
36993699
}
37003700

3701+
37013702
#ifdef __EMSCRIPTEN__
37023703

37033704
PyDoc_STRVAR(emscripten_info__doc__,

0 commit comments

Comments
 (0)