Skip to content

Commit a2fee60

Browse files
ambvmeta-codesync[bot]
authored andcommitted
Sync pre-release CPython 3.15 branch from GitHub (2026-06-12)
Summary: Imported python/cpython `3.15.0b2+dev` from upstream rev [`a2e5516`](https://www.github.com/python/cpython/commit/a2e551610f6248cfd130172e1cf9f5ee811758b9) (committed 2026-06-12 01:47:01+00:00). # Commit Info - Base: (`3.15.0b2+dev`) - [`73e5d44`](https://www.github.com/python/cpython/commit/73e5d444ac4f0801074c3a27271070774ff88b62) (commit date: 2026-06-09 23:33:04+00:00) - Imported: (`3.15.0b2+dev`) - [`a2e5516`](https://www.github.com/python/cpython/commit/a2e551610f6248cfd130172e1cf9f5ee811758b9) (commit date: 2026-06-12 01:47:01+00:00) # Noteworthy file changes - Low-signal files (13 added) (NEWS.d, docs, .github) Complete list of added/removed files: https://www.internalfb.com/intern/everpaste/?color=0&handle=GAyXqSgfXq6Rfh4GALgNiRj8aeEFbr0LAAAz Reviewed By: yoney Differential Revision: D108380163 fbshipit-source-id: b78b9890a2e83f4602f16262dc6f578841ef6660
1 parent 9844e15 commit a2fee60

78 files changed

Lines changed: 1257 additions & 667 deletions

File tree

Some content is hidden

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

.github/workflows/reusable-san.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,19 @@ jobs:
8282
run: make -j4
8383
- name: Display build info
8484
run: make pythoninfo
85-
# test_{capi,faulthandler} are skipped under UBSan because
85+
# test_capi is skipped under UBSan because
8686
# they raise signals that UBSan with halt_on_error=1 intercepts.
8787
- name: Tests
8888
run: >-
8989
./python -m test
9090
${{ inputs.sanitizer == 'TSan' && '--tsan' || '' }}
91-
${{ inputs.sanitizer == 'UBSan' && '-x test_capi -x test_faulthandler' || '' }}
92-
-j4
91+
${{ inputs.sanitizer == 'UBSan' && '-x test_capi' || '' }}
92+
-j4 -W
9393
- name: Parallel tests
9494
if: >-
9595
inputs.sanitizer == 'TSan'
9696
&& fromJSON(inputs.free-threading)
97-
run: ./python -m test --tsan-parallel --parallel-threads=4 -j4
97+
run: ./python -m test --tsan-parallel --parallel-threads=4 -j4 -W
9898
- name: Display logs
9999
if: always()
100100
run: find "${GITHUB_WORKSPACE}" -name 'san_log.*' | xargs head -n 1000

Doc/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ htmlhelp: build
8888
"build/htmlhelp/pydoc.hhp project file."
8989

9090
.PHONY: latex
91-
latex: _ensure-sphinxcontrib-svg2pdfconverter
9291
latex: BUILDER = latex
93-
latex: build
92+
latex: _ensure-sphinxcontrib-svg2pdfconverter
93+
$(MAKE) build BUILDER=$(BUILDER)
9494
@echo "Build finished; the LaTeX files are in build/latex."
9595
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
9696
"run these through (pdf)latex."

Doc/c-api/memory.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ memory footprint as a whole. Consequently, under certain circumstances, the
7777
Python memory manager may or may not trigger appropriate actions, like garbage
7878
collection, memory compaction or other preventive procedures. Note that by using
7979
the C library allocator as shown in the previous example, the allocated memory
80-
for the I/O buffer escapes completely the Python memory manager.
80+
for the I/O buffer completely escapes the Python memory manager.
8181

8282
.. seealso::
8383

@@ -157,7 +157,7 @@ zero bytes.
157157
158158
.. c:function:: void* PyMem_RawCalloc(size_t nelem, size_t elsize)
159159
160-
Allocates *nelem* elements each whose size in bytes is *elsize* and returns
160+
Allocates *nelem* elements each of size *elsize* bytes and returns
161161
a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if the
162162
request fails. The memory is initialized to zeros.
163163
@@ -235,7 +235,7 @@ In the GIL-enabled build (default build) the
235235
236236
.. c:function:: void* PyMem_Calloc(size_t nelem, size_t elsize)
237237
238-
Allocates *nelem* elements each whose size in bytes is *elsize* and returns
238+
Allocates *nelem* elements each of size *elsize* bytes and returns
239239
a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if the
240240
request fails. The memory is initialized to zeros.
241241
@@ -368,7 +368,7 @@ The :ref:`default object allocator <default-memory-allocators>` uses the
368368
369369
.. c:function:: void* PyObject_Calloc(size_t nelem, size_t elsize)
370370
371-
Allocates *nelem* elements each whose size in bytes is *elsize* and returns
371+
Allocates *nelem* elements each of size *elsize* bytes and returns
372372
a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if the
373373
request fails. The memory is initialized to zeros.
374374

Doc/c-api/weakref.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ as much as it can.
4242
callable object that receives notification when *ob* is garbage collected; it
4343
should accept a single parameter, which will be the weak reference object
4444
itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a
45-
weakly referenceable object, or if *callback* is not callable, ``None``, or
46-
``NULL``, this will return ``NULL`` and raise :exc:`TypeError`.
45+
weakly referenceable object, this will raise :exc:`TypeError` and return
46+
``NULL``.
4747
4848
.. seealso::
4949
:c:func:`PyType_SUPPORTS_WEAKREFS` for checking if *ob* is weakly
@@ -58,8 +58,8 @@ as much as it can.
5858
be a callable object that receives notification when *ob* is garbage
5959
collected; it should accept a single parameter, which will be the weak
6060
reference object itself. *callback* may also be ``None`` or ``NULL``. If *ob*
61-
is not a weakly referenceable object, or if *callback* is not callable,
62-
``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`.
61+
weakly referenceable object, this will raise :exc:`TypeError` and return
62+
``NULL``.
6363
6464
.. seealso::
6565
:c:func:`PyType_SUPPORTS_WEAKREFS` for checking if *ob* is weakly

Doc/howto/annotations.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
Annotations Best Practices
55
**************************
66

7-
:author: Larry Hastings
8-
97
.. topic:: Abstract
108

119
This document is designed to encapsulate the best practices

Doc/howto/argparse.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
Argparse Tutorial
55
*****************
66

7-
:author: Tshepang Mbambo
8-
97
.. currentmodule:: argparse
108

119
This tutorial is intended to be a gentle introduction to :mod:`argparse`, the

Doc/howto/curses.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66

77
.. currentmodule:: curses
88

9-
:Author: A.M. Kuchling, Eric S. Raymond
10-
:Release: 2.04
11-
129

1310
.. topic:: Abstract
1411

Doc/howto/descriptor.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
Descriptor Guide
55
================
66

7-
:Author: Raymond Hettinger
8-
:Contact: <python at rcn dot com>
9-
107
.. Contents::
118

129

Doc/howto/functional.rst

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
Functional Programming HOWTO
55
********************************
66

7-
:Author: \A. M. Kuchling
8-
:Release: 0.32
9-
107
In this document, we'll take a tour of Python's features suitable for
118
implementing programs in a functional style. After an introduction to the
129
concepts of functional programming, we'll look at language features such as
@@ -1185,7 +1182,8 @@ about whether this lambda-free style is better.
11851182
Revision History and Acknowledgements
11861183
=====================================
11871184

1188-
The author would like to thank the following people for offering suggestions,
1185+
This HOWTO was originally written by A. M. Kuchling. The author would like to
1186+
thank the following people for offering suggestions,
11891187
corrections and assistance with various drafts of this article: Ian Bicking,
11901188
Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike Krell, Leandro
11911189
Lameiro, Jussi Salmela, Collin Winter, Blake Winton.
@@ -1239,9 +1237,9 @@ Text Processing".
12391237

12401238
Mertz also wrote a 3-part series of articles on functional programming
12411239
for IBM's DeveloperWorks site; see
1242-
`part 1 <https://developer.ibm.com/articles/l-prog/>`__,
1243-
`part 2 <https://developer.ibm.com/tutorials/l-prog2/>`__, and
1244-
`part 3 <https://developer.ibm.com/tutorials/l-prog3/>`__,
1240+
`part 1 <https://web.archive.org/web/20211006103639/https://developer.ibm.com/articles/l-prog/>`__,
1241+
`part 2 <https://web.archive.org/web/20211205224606/https://developer.ibm.com/tutorials/l-prog2/>`__, and
1242+
`part 3 <https://web.archive.org/web/20211127083846/https://developer.ibm.com/tutorials/l-prog3/>`__.
12451243

12461244

12471245
Python documentation

Doc/howto/instrumentation.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
Instrumenting CPython with DTrace and SystemTap
77
===============================================
88

9-
:author: David Malcolm
10-
:author: Łukasz Langa
11-
129
DTrace and SystemTap are monitoring tools, each providing a way to inspect
1310
what the processes on a computer system are doing. They both use
1411
domain-specific languages allowing a user to write scripts which:

0 commit comments

Comments
 (0)