Skip to content

Commit 1d64765

Browse files
authored
Merge branch 'main' into mbox-from
2 parents e9e6424 + 978e37b commit 1d64765

File tree

692 files changed

+42471
-26257
lines changed

Some content is hidden

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

692 files changed

+42471
-26257
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,3 +309,6 @@ Doc/reference/ @willingc @AA-Turner
309309
# Colorize
310310
Lib/_colorize.py @hugovk
311311
Lib/test/test__colorize.py @hugovk
312+
313+
# Fuzzing
314+
Modules/_xxtestfuzz/ @ammaraskar

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ jobs:
185185
needs: build-context
186186
if: fromJSON(needs.build-context.outputs.run-windows-msi)
187187
strategy:
188+
fail-fast: false
188189
matrix:
189190
arch:
190191
- x86
@@ -236,6 +237,7 @@ jobs:
236237
needs: build-context
237238
if: needs.build-context.outputs.run-tests == 'true'
238239
strategy:
240+
fail-fast: false
239241
matrix:
240242
bolt:
241243
- false
@@ -452,6 +454,7 @@ jobs:
452454
needs: build-context
453455
if: needs.build-context.outputs.run-tests == 'true'
454456
strategy:
457+
fail-fast: false
455458
matrix:
456459
os: [ubuntu-24.04]
457460
env:
@@ -515,6 +518,7 @@ jobs:
515518
needs: build-context
516519
if: needs.build-context.outputs.run-tests == 'true'
517520
strategy:
521+
fail-fast: false
518522
matrix:
519523
free-threading:
520524
- false

.github/workflows/jit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ jobs:
139139
runs-on: ubuntu-24.04
140140
timeout-minutes: 90
141141
strategy:
142+
fail-fast: false
142143
matrix:
143144
llvm:
144145
- 19

.github/workflows/project-updater.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
timeout-minutes: 10
1717
strategy:
18+
fail-fast: false
1819
matrix:
1920
include:
2021
# if an issue has any of these labels, it will be added

.github/workflows/require-pr-label.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ jobs:
1010
if: github.repository_owner == 'python'
1111
runs-on: ubuntu-latest
1212
permissions:
13-
issues: write
14-
pull-requests: write
13+
pull-requests: read
1514
timeout-minutes: 10
1615

1716
steps:
@@ -28,8 +27,7 @@ jobs:
2827
if: github.repository_owner == 'python'
2928
runs-on: ubuntu-latest
3029
permissions:
31-
issues: write
32-
pull-requests: write
30+
pull-requests: read
3331
timeout-minutes: 10
3432

3533
steps:

.github/workflows/tail-call.yml

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ name: Tail calling interpreter
22
on:
33
pull_request:
44
paths:
5+
- '.github/workflows/tail-call.yml'
56
- 'Python/bytecodes.c'
67
- 'Python/ceval.c'
78
- 'Python/ceval_macros.h'
89
- 'Python/generated_cases.c.h'
910
push:
1011
paths:
12+
- '.github/workflows/tail-call.yml'
1113
- 'Python/bytecodes.c'
1214
- 'Python/ceval.c'
1315
- 'Python/ceval_macros.h'
@@ -35,7 +37,7 @@ jobs:
3537
target:
3638
# Un-comment as we add support for more platforms for tail-calling interpreters.
3739
# - i686-pc-windows-msvc/msvc
38-
# - x86_64-pc-windows-msvc/msvc
40+
- x86_64-pc-windows-msvc/msvc
3941
# - aarch64-pc-windows-msvc/msvc
4042
- x86_64-apple-darwin/clang
4143
- aarch64-apple-darwin/clang
@@ -48,9 +50,9 @@ jobs:
4850
# - target: i686-pc-windows-msvc/msvc
4951
# architecture: Win32
5052
# runner: windows-latest
51-
# - target: x86_64-pc-windows-msvc/msvc
52-
# architecture: x64
53-
# runner: windows-latest
53+
- target: x86_64-pc-windows-msvc/msvc
54+
architecture: x64
55+
runner: windows-latest
5456
# - target: aarch64-pc-windows-msvc/msvc
5557
# architecture: ARM64
5658
# runner: windows-latest
@@ -79,23 +81,31 @@ jobs:
7981

8082
- name: Native Windows (debug)
8183
if: runner.os == 'Windows' && matrix.architecture != 'ARM64'
84+
shell: cmd
8285
run: |
83-
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
86+
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5
87+
set PlatformToolset=clangcl
88+
set LLVMToolsVersion=${{ matrix.llvm }}.1.5
89+
set LLVMInstallDir=C:\Program Files\LLVM
8490
./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }}
8591
./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
8692
8793
# No tests (yet):
8894
- name: Emulated Windows (release)
8995
if: runner.os == 'Windows' && matrix.architecture == 'ARM64'
96+
shell: cmd
9097
run: |
91-
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
98+
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5
99+
set PlatformToolset=clangcl
100+
set LLVMToolsVersion=${{ matrix.llvm }}.1.5
101+
set LLVMInstallDir=C:\Program Files\LLVM
92102
./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }}
93103
94104
# The `find` line is required as a result of https://github.com/actions/runner-images/issues/9966.
95105
# This is a bug in the macOS runner image where the pre-installed Python is installed in the same
96106
# directory as the Homebrew Python, which causes the build to fail for macos-13. This line removes
97107
# the symlink to the pre-installed Python so that the Homebrew Python is used instead.
98-
- name: Native macOS (debug)
108+
- name: Native macOS (release)
99109
if: runner.os == 'macOS'
100110
run: |
101111
brew update
@@ -104,16 +114,16 @@ jobs:
104114
export SDKROOT="$(xcrun --show-sdk-path)"
105115
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
106116
export PATH="/usr/local/opt/llvm/bin:$PATH"
107-
CC=clang-19 ./configure --with-tail-call-interp --with-pydebug
117+
CC=clang-19 ./configure --with-tail-call-interp
108118
make all --jobs 4
109119
./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
110120
111-
- name: Native Linux (release)
121+
- name: Native Linux (debug)
112122
if: runner.os == 'Linux' && matrix.target != 'free-threading'
113123
run: |
114124
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
115125
export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
116-
CC=clang-19 ./configure --with-tail-call-interp
126+
CC=clang-19 ./configure --with-tail-call-interp --with-pydebug
117127
make all --jobs 4
118128
./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
119129

Doc/c-api/allocation.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ Allocating Objects on the Heap
3535
The size of the memory allocation is determined from the
3636
:c:member:`~PyTypeObject.tp_basicsize` field of the type object.
3737
38+
Note that this function is unsuitable if *typeobj* has
39+
:c:macro:`Py_TPFLAGS_HAVE_GC` set. For such objects,
40+
use :c:func:`PyObject_GC_New` instead.
41+
3842
3943
.. c:macro:: PyObject_NewVar(TYPE, typeobj, size)
4044
@@ -49,6 +53,10 @@ Allocating Objects on the Heap
4953
fields into the same allocation decreases the number of allocations,
5054
improving the memory management efficiency.
5155
56+
Note that this function is unsuitable if *typeobj* has
57+
:c:macro:`Py_TPFLAGS_HAVE_GC` set. For such objects,
58+
use :c:func:`PyObject_GC_NewVar` instead.
59+
5260
5361
.. c:function:: void PyObject_Del(void *op)
5462

Doc/c-api/arg.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Parsing arguments and building values
66
=====================================
77

8-
These functions are useful when creating your own extensions functions and
8+
These functions are useful when creating your own extension functions and
99
methods. Additional information and examples are available in
1010
:ref:`extending-index`.
1111

Doc/c-api/init_config.rst

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,10 @@ Configuration Options
505505
- :c:member:`use_hash_seed <PyConfig.use_hash_seed>`
506506
- ``bool``
507507
- Read-only
508+
* - ``"use_system_logger"``
509+
- :c:member:`use_system_logger <PyConfig.use_system_logger>`
510+
- ``bool``
511+
- Read-only
508512
* - ``"user_site_directory"``
509513
- :c:member:`user_site_directory <PyConfig.user_site_directory>`
510514
- ``bool``
@@ -1927,9 +1931,10 @@ PyConfig
19271931
19281932
Only available on macOS 10.12 and later, and on iOS.
19291933
1930-
Default: ``0`` (don't use system log).
1934+
Default: ``0`` (don't use the system log) on macOS; ``1`` on iOS (use the
1935+
system log).
19311936
1932-
.. versionadded:: 3.13.2
1937+
.. versionadded:: 3.14
19331938
19341939
.. c:member:: int user_site_directory
19351940

Doc/c-api/intro.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,16 @@ familiar with writing an extension before attempting to embed Python in a real
3030
application.
3131

3232

33+
Language version compatibility
34+
==============================
35+
36+
Python's C API is compatible with C11 and C++11 versions of C and C++.
37+
38+
This is a lower limit: the C API does not require features from later
39+
C/C++ versions.
40+
You do *not* need to enable your compiler's "c11 mode".
41+
42+
3343
Coding standards
3444
================
3545

0 commit comments

Comments
 (0)