Skip to content

Commit 58d12c0

Browse files
authored
Merge branch 'main' into fix-pow-docs/130102
2 parents e82a417 + 350c58b commit 58d12c0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1011
-581
lines changed

.github/CODEOWNERS

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,23 @@
44
# It uses the same pattern rule for gitignore file
55
# https://git-scm.com/docs/gitignore#_pattern_format
66

7-
# GitHub
7+
# Azure Pipelines
8+
.azure-pipelines/ @AA-Turner
9+
10+
# GitHub & related scripts
811
.github/** @ezio-melotti @hugovk @AA-Turner
12+
Tools/build/compute-changes.py @AA-Turner
13+
Tools/build/verify_ensurepip_wheels.py @AA-Turner
914

1015
# pre-commit
1116
.pre-commit-config.yaml @hugovk
1217
.ruff.toml @hugovk @AlexWaygood @AA-Turner
1318

14-
# Build system
15-
configure* @erlend-aasland @corona10
16-
Makefile.pre.in @erlend-aasland
17-
Modules/Setup* @erlend-aasland
19+
# Build system (autotools)
20+
configure* @erlend-aasland @corona10 @AA-Turner
21+
Makefile.pre.in @erlend-aasland @AA-Turner
22+
Modules/Setup* @erlend-aasland @AA-Turner
23+
Tools/build/regen-configure.sh @AA-Turner
1824

1925
# argparse
2026
**/*argparse* @savannahostrowski
@@ -67,6 +73,7 @@ Doc/make.bat @AA-Turner @hugovk
6773
Doc/requirements.txt @AA-Turner @hugovk
6874
Doc/_static/** @AA-Turner @hugovk
6975
Doc/tools/** @AA-Turner @hugovk
76+
.readthedocs.yml @AA-Turner
7077

7178
# runtime state/lifecycle
7279
**/*pylifecycle* @ericsnowcurrently @ZeroIntensity
@@ -155,6 +162,10 @@ Doc/c-api/module.rst @ericsnowcurrently
155162
**/*importlib/resources/* @jaraco @warsaw @FFY00
156163
**/*importlib/metadata/* @jaraco @warsaw
157164

165+
# Calendar
166+
Lib/calendar.py @AA-Turner
167+
Lib/test/test_calendar.py @AA-Turner
168+
158169
# Dates and times
159170
**/*datetime* @pganssle @abalkin
160171
**/*str*time* @pganssle @abalkin
@@ -205,6 +216,11 @@ Lib/test/test_ast/ @eclips4 @tomasr8
205216
# multiprocessing
206217
**/*multiprocessing* @gpshead
207218

219+
# pydoc
220+
Lib/pydoc.py @AA-Turner
221+
Lib/pydoc_data/ @AA-Turner
222+
Lib/test/test_pydoc/ @AA-Turner
223+
208224
# SQLite 3
209225
**/*sqlite* @berkerpeksag @erlend-aasland
210226

@@ -217,6 +233,11 @@ Lib/test/test_ast/ @eclips4 @tomasr8
217233
**/*pdb* @gaogaotiantian
218234
**/*bdb* @gaogaotiantian
219235

236+
# types
237+
Lib/test/test_types.py @AA-Turner
238+
Lib/types.py @AA-Turner
239+
Modules/_typesmodule.c @AA-Turner
240+
220241
# Limited C API & stable ABI
221242
Tools/build/stable_abi.py @encukou
222243
Misc/stable_abi.toml @encukou
@@ -234,6 +255,11 @@ Doc/c-api/stable.rst @encukou
234255
/Tools/msi/ @python/windows-team
235256
/Tools/nuget/ @python/windows-team
236257

258+
# Zstandard
259+
Lib/compression/zstd/ @AA-Turner
260+
Lib/test/test_zstd.py @AA-Turner
261+
Modules/_zstd/ @AA-Turner
262+
237263
# Misc
238264
**/*itertools* @rhettinger
239265
**/*collections* @rhettinger
@@ -266,6 +292,9 @@ Doc/c-api/stable.rst @encukou
266292

267293
**/*cjkcodecs* @corona10
268294

295+
# Patchcheck
296+
Tools/patchcheck/ @AA-Turner
297+
269298
# macOS
270299
/Mac/ @python/macos-team
271300
**/*osx_support* @python/macos-team
@@ -277,9 +306,9 @@ Doc/c-api/stable.rst @encukou
277306
**/*zipfile/_path/* @jaraco
278307

279308
# Argument Clinic
280-
/Tools/clinic/** @erlend-aasland
281-
/Lib/test/test_clinic.py @erlend-aasland
282-
Doc/howto/clinic.rst @erlend-aasland
309+
/Tools/clinic/** @erlend-aasland @AA-Turner
310+
/Lib/test/test_clinic.py @erlend-aasland @AA-Turner
311+
Doc/howto/clinic.rst @erlend-aasland @AA-Turner
283312

284313
# Subinterpreters
285314
**/*interpreteridobject.* @ericsnowcurrently
@@ -323,6 +352,7 @@ Lib/test/test_configparser.py @jaraco
323352

324353
# Doc sections
325354
Doc/reference/ @willingc @AA-Turner
355+
Doc/whatsnew/ @AA-Turner
326356

327357
**/*weakref* @kumaraditya303
328358

@@ -336,7 +366,7 @@ Modules/_xxtestfuzz/ @ammaraskar
336366
# t-strings
337367
**/*interpolationobject* @lysnikolaou
338368
**/*templateobject* @lysnikolaou
339-
**/*templatelib* @lysnikolaou
369+
**/*templatelib* @lysnikolaou @AA-Turner
340370
**/*tstring* @lysnikolaou
341371

342372
# Remote debugging
@@ -346,3 +376,6 @@ Modules/_remote_debugging_module.c @pablogsal @ambv @1st1
346376

347377
# gettext
348378
**/*gettext* @tomasr8
379+
380+
# Internal Docs
381+
InternalDocs/ @AA-Turner

.well-known/funding-manifest-urls

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://www.python.org/funding.json

Doc/library/difflib.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,9 +351,9 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module.
351351

352352
.. seealso::
353353

354-
`Pattern Matching: The Gestalt Approach <https://www.drdobbs.com/database/pattern-matching-the-gestalt-approach/184407970>`_
354+
`Pattern Matching: The Gestalt Approach <https://jacobfilipp.com/DrDobbs/articles/DDJ/1988/8807/8807c/8807c.htm>`_
355355
Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. This
356-
was published in `Dr. Dobb's Journal <https://www.drdobbs.com/>`_ in July, 1988.
356+
was published in Dr. Dobb's Journal in July, 1988.
357357

358358

359359
.. _sequence-matcher:

Doc/library/time.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ These constants are used as parameters for :func:`clock_getres` and
935935

936936
.. data:: CLOCK_TAI
937937

938-
`International Atomic Time <https://www.nist.gov/pml/time-and-frequency-division/nist-time-frequently-asked-questions-faq#tai>`_
938+
`International Atomic Time <https://www.nist.gov/pml/time-and-frequency-division/how-utcnist-related-coordinated-universal-time-utc-international>`_
939939

940940
The system must have a current leap second table in order for this to give
941941
the correct answer. PTP or NTP software can maintain a leap second table.

Doc/library/warnings.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ Available Functions
458458
lower.one_way(**kw)
459459

460460
This makes the warning refer to both the ``example.lower.one_way()`` and
461-
``package.higher.another_way()`` call sites only from calling code living
461+
``example.higher.another_way()`` call sites only from calling code living
462462
outside of ``example`` package.
463463

464464
*source*, if supplied, is the destroyed object which emitted a

Doc/reference/compound_stmts.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ have ambiguous semantics.
386386

387387
It is not possible to mix :keyword:`except` and :keyword:`!except*`
388388
in the same :keyword:`try`.
389-
:keyword:`break`, :keyword:`continue` and :keyword:`return`
389+
The :keyword:`break`, :keyword:`continue`, and :keyword:`return` statements
390390
cannot appear in an :keyword:`!except*` clause.
391391

392392

Doc/whatsnew/3.15.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,15 @@ ctypes
418418
(Contributed by Bénédikt Tran in :gh:`133866`.)
419419

420420

421+
glob
422+
----
423+
424+
* Removed the undocumented :func:`!glob.glob0` and :func:`!glob.glob1`
425+
functions, which have been deprecated since Python 3.13. Use
426+
:func:`glob.glob` and pass a directory to its *root_dir* argument instead.
427+
(Contributed by Barney Gale in :gh:`137466`.)
428+
429+
421430
http.server
422431
-----------
423432

Include/internal/pycore_interp_structs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ struct _ceval_runtime_state {
8888
struct trampoline_api_st trampoline_api;
8989
FILE *map_file;
9090
Py_ssize_t persist_after_fork;
91+
_PyFrameEvalFunction prev_eval_frame;
9192
#else
9293
int _not_used;
9394
#endif

Include/internal/pycore_pyatomic_ft_wrappers.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ extern "C" {
111111
_Py_atomic_load_ullong_relaxed(&value)
112112
#define FT_ATOMIC_ADD_SSIZE(value, new_value) \
113113
(void)_Py_atomic_add_ssize(&value, new_value)
114+
#define FT_MUTEX_LOCK(lock) PyMutex_Lock(lock)
115+
#define FT_MUTEX_UNLOCK(lock) PyMutex_Unlock(lock)
114116

115117
#else
116118
#define FT_ATOMIC_LOAD_PTR(value) value
@@ -159,6 +161,8 @@ extern "C" {
159161
#define FT_ATOMIC_LOAD_ULLONG_RELAXED(value) value
160162
#define FT_ATOMIC_STORE_ULLONG_RELAXED(value, new_value) value = new_value
161163
#define FT_ATOMIC_ADD_SSIZE(value, new_value) (void)(value += new_value)
164+
#define FT_MUTEX_LOCK(lock) do {} while (0)
165+
#define FT_MUTEX_UNLOCK(lock) do {} while (0)
162166

163167
#endif
164168

InternalDocs/garbage_collector.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -329,15 +329,16 @@ Once the GC knows the list of unreachable objects, a very delicate process start
329329
with the objective of completely destroying these objects. Roughly, the process
330330
follows these steps in order:
331331

332-
1. Handle and clear weak references (if any). Weak references to unreachable objects
333-
are set to `None`. If the weak reference has an associated callback, the callback
334-
is enqueued to be called once the clearing of weak references is finished. We only
335-
invoke callbacks for weak references that are themselves reachable. If both the weak
336-
reference and the pointed-to object are unreachable we do not execute the callback.
337-
This is partly for historical reasons: the callback could resurrect an unreachable
338-
object and support for weak references predates support for object resurrection.
339-
Ignoring the weak reference's callback is fine because both the object and the weakref
340-
are going away, so it's legitimate to say the weak reference is going away first.
332+
1. Handle weak references with callbacks (if any). If the weak reference has
333+
an associated callback, the callback is enqueued to be called after the weak
334+
reference is cleared. We only invoke callbacks for weak references that
335+
are themselves reachable. If both the weak reference and the pointed-to
336+
object are unreachable we do not execute the callback. This is partly for
337+
historical reasons: the callback could resurrect an unreachable object
338+
and support for weak references predates support for object resurrection.
339+
Ignoring the weak reference's callback is fine because both the object and
340+
the weakref are going away, so it's legitimate to say the weak reference is
341+
going away first.
341342
2. If an object has legacy finalizers (`tp_del` slot) move it to the
342343
`gc.garbage` list.
343344
3. Call the finalizers (`tp_finalize` slot) and mark the objects as already
@@ -346,7 +347,12 @@ follows these steps in order:
346347
4. Deal with resurrected objects. If some objects have been resurrected, the GC
347348
finds the new subset of objects that are still unreachable by running the cycle
348349
detection algorithm again and continues with them.
349-
5. Call the `tp_clear` slot of every object so all internal links are broken and
350+
5. Clear any weak references that still refer to unreachable objects. The
351+
`wr_object` attribute for these weakrefs are set to `None`. Note that some
352+
of these weak references maybe have been newly created during the running of
353+
finalizers in step 3. Also, clear any weak references that are part of the
354+
unreachable set.
355+
6. Call the `tp_clear` slot of every object so all internal links are broken and
350356
the reference counts fall to 0, triggering the destruction of all unreachable
351357
objects.
352358

0 commit comments

Comments
 (0)