Skip to content

Commit a768a66

Browse files
Merge branch 'main' into decimal-from-number
2 parents ae4c7a5 + 66b3922 commit a768a66

File tree

1,304 files changed

+90343
-62454
lines changed

Some content is hidden

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

1,304 files changed

+90343
-62454
lines changed

.devcontainer/Dockerfile

Lines changed: 0 additions & 24 deletions
This file was deleted.

.devcontainer/devcontainer.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
{
2-
"build": {
3-
"dockerfile": "Dockerfile"
4-
},
2+
"image": "ghcr.io/python/devcontainer:2024.09.25.11038928730",
53
"onCreateCommand": [
64
// Install common tooling.
75
"dnf",

.gitattributes

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ Lib/test/cjkencodings/* noeol
2727
Lib/test/tokenizedata/coding20731.py noeol
2828
Lib/test/decimaltestdata/*.decTest noeol
2929
Lib/test/test_email/data/*.txt noeol
30-
Lib/test/test_importlib/resources/data01/* noeol
31-
Lib/test/test_importlib/resources/namespacedata01/* noeol
3230
Lib/test/xmltestdata/* noeol
3331

3432
# Shell scripts should have LF even on Windows because of Cygwin

.github/CODEOWNERS

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ Objects/frameobject.c @markshannon
3333
Objects/call.c @markshannon
3434
Python/ceval*.c @markshannon
3535
Python/ceval*.h @markshannon
36+
Python/codegen.c @markshannon @iritkatriel
3637
Python/compile.c @markshannon @iritkatriel
3738
Python/assemble.c @markshannon @iritkatriel
3839
Python/flowgraph.c @markshannon @iritkatriel
3940
Python/instruction_sequence.c @iritkatriel
40-
Python/ast_opt.c @isidentical
4141
Python/bytecodes.c @markshannon
4242
Python/optimizer*.c @markshannon
4343
Python/optimizer_analysis.c @Fidget-Spinner
@@ -157,10 +157,12 @@ Include/internal/pycore_time.h @pganssle @abalkin
157157
/Tools/cases_generator/ @markshannon
158158

159159
# AST
160-
Python/ast.c @isidentical @JelleZijlstra
161-
Parser/asdl.py @isidentical @JelleZijlstra
162-
Parser/asdl_c.py @isidentical @JelleZijlstra
163-
Lib/ast.py @isidentical @JelleZijlstra
160+
Python/ast.c @isidentical @JelleZijlstra @eclips4
161+
Python/ast_opt.c @isidentical @eclips4
162+
Parser/asdl.py @isidentical @JelleZijlstra @eclips4
163+
Parser/asdl_c.py @isidentical @JelleZijlstra @eclips4
164+
Lib/ast.py @isidentical @JelleZijlstra @eclips4
165+
Lib/test/test_ast/ @eclips4
164166

165167
# Mock
166168
/Lib/unittest/mock.py @cjw296
@@ -205,14 +207,14 @@ Doc/c-api/stable.rst @encukou
205207
**/*bisect* @rhettinger
206208
**/*heapq* @rhettinger
207209
**/*functools* @rhettinger
208-
**/*decimal* @rhettinger
209210

210211
**/*dataclasses* @ericvsmith
211212

212213
**/*ensurepip* @pfmoore @pradyunsg
213214

214-
**/*idlelib* @terryjreedy
215215
/Doc/library/idle.rst @terryjreedy
216+
**/*idlelib* @terryjreedy
217+
**/*turtledemo* @terryjreedy
216218

217219
**/*annotationlib* @JelleZijlstra
218220
**/*typing* @JelleZijlstra @AlexWaygood
@@ -275,3 +277,8 @@ Lib/test/test_interpreters/ @ericsnowcurrently
275277
# Config Parser
276278
Lib/configparser.py @jaraco
277279
Lib/test/test_configparser.py @jaraco
280+
281+
# Doc sections
282+
Doc/reference/ @willingc
283+
284+
**/*weakref* @kumaraditya303

.github/ISSUE_TEMPLATE/crash.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ body:
3232
- "3.10"
3333
- "3.11"
3434
- "3.12"
35+
- "3.13"
3536
- "CPython main branch"
3637
validations:
3738
required: true

.github/workflows/build.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,15 @@ jobs:
195195

196196
build_ubuntu_ssltests:
197197
name: 'Ubuntu SSL tests with OpenSSL'
198-
runs-on: ubuntu-22.04
198+
runs-on: ${{ matrix.os }}
199199
timeout-minutes: 60
200200
needs: check_source
201201
if: needs.check_source.outputs.run_tests == 'true'
202202
strategy:
203203
fail-fast: false
204204
matrix:
205-
openssl_ver: [1.1.1w, 3.0.13, 3.1.5, 3.2.1]
205+
os: [ubuntu-22.04]
206+
openssl_ver: [3.0.15, 3.1.7, 3.2.3, 3.3.2]
206207
env:
207208
OPENSSL_VER: ${{ matrix.openssl_ver }}
208209
MULTISSL_DIR: ${{ github.workspace }}/multissl
@@ -231,7 +232,7 @@ jobs:
231232
uses: actions/cache@v4
232233
with:
233234
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
234-
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
235+
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
235236
- name: Install OpenSSL
236237
if: steps.cache-openssl.outputs.cache-hit != 'true'
237238
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
@@ -266,7 +267,7 @@ jobs:
266267
needs: check_source
267268
if: needs.check_source.outputs.run_tests == 'true' && needs.check_source.outputs.run_hypothesis == 'true'
268269
env:
269-
OPENSSL_VER: 3.0.13
270+
OPENSSL_VER: 3.0.15
270271
PYTHONSTRICTEXTENSIONBUILD: 1
271272
steps:
272273
- uses: actions/checkout@v4
@@ -380,7 +381,7 @@ jobs:
380381
needs: check_source
381382
if: needs.check_source.outputs.run_tests == 'true'
382383
env:
383-
OPENSSL_VER: 3.0.13
384+
OPENSSL_VER: 3.0.15
384385
PYTHONSTRICTEXTENSIONBUILD: 1
385386
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
386387
steps:
@@ -410,7 +411,7 @@ jobs:
410411
uses: actions/cache@v4
411412
with:
412413
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
413-
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
414+
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
414415
- name: Install OpenSSL
415416
if: steps.cache-openssl.outputs.cache-hit != 'true'
416417
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux

.github/workflows/jit.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,17 +110,15 @@ jobs:
110110
- name: Native Windows
111111
if: runner.os == 'Windows' && matrix.architecture != 'ARM64'
112112
run: |
113-
choco upgrade llvm -y
114-
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
113+
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
115114
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '--pgo' }} -p ${{ matrix.architecture }}
116115
./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
117116
118117
# No PGO or tests (yet):
119118
- name: Emulated Windows
120119
if: runner.os == 'Windows' && matrix.architecture == 'ARM64'
121120
run: |
122-
choco upgrade llvm -y
123-
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
121+
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
124122
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }}
125123
126124
- name: Native macOS
@@ -159,7 +157,7 @@ jobs:
159157
CC="${{ matrix.compiler == 'clang' && 'clang --target=$HOST' || '$HOST-gcc' }}" \
160158
CPP="$CC --preprocess" \
161159
HOSTRUNNER=qemu-${{ matrix.architecture }} \
162-
./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }} --build=x86_64-linux-gnu --host="$HOST" --with-build-python=../build/bin/python3 --with-pkg-config=no ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptc=no ac_cv_file__dev_ptmx=yes
160+
./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--with-lto' }} --build=x86_64-linux-gnu --host="$HOST" --with-build-python=../build/bin/python3 --with-pkg-config=no ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptc=no ac_cv_file__dev_ptmx=yes
163161
make all --jobs 4
164162
./python -m test --ignorefile=Tools/jit/ignore-tests-emulated-linux.txt --multiprocess 0 --timeout 4500 --verbose2 --verbose3
165163

.github/workflows/reusable-change-detection.yml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
---
2-
3-
name: Change detection
1+
name: Reusable change detection
42

53
on: # yamllint disable-line rule:truthy
64
workflow_call:
@@ -126,13 +124,18 @@ jobs:
126124
.github/workflows/reusable-docs.yml
127125
format: csv # works for paths with spaces
128126
- name: Check for docs changes
127+
# We only want to run this on PRs when related files are changed,
128+
# or when user triggers manual workflow run.
129129
if: >-
130-
github.event_name == 'pull_request'
131-
&& steps.changed-docs-files.outputs.added_modified_renamed != ''
130+
(
131+
github.event_name == 'pull_request'
132+
&& steps.changed-docs-files.outputs.added_modified_renamed != ''
133+
) || github.event_name == 'workflow_dispatch'
132134
id: docs-changes
133135
run: |
134136
echo "run-docs=true" >> "${GITHUB_OUTPUT}"
135137
- name: Get a list of the MSI installer-related files
138+
if: github.event_name == 'pull_request'
136139
id: changed-win-msi-files
137140
uses: Ana06/[email protected]
138141
with:
@@ -141,10 +144,13 @@ jobs:
141144
.github/workflows/reusable-windows-msi.yml
142145
format: csv # works for paths with spaces
143146
- name: Check for changes in MSI installer-related files
147+
# We only want to run this on PRs when related files are changed,
148+
# or when user triggers manual workflow run.
144149
if: >-
145-
steps.changed-win-msi-files.outputs.added_modified_renamed != ''
150+
(
151+
github.event_name == 'pull_request'
152+
&& steps.changed-win-msi-files.outputs.added_modified_renamed != ''
153+
) || github.event_name == 'workflow_dispatch'
146154
id: win-msi-changes
147155
run: |
148156
echo "run-win-msi=true" >> "${GITHUB_OUTPUT}"
149-
150-
...

.github/workflows/reusable-docs.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Docs
1+
name: Reusable Docs
22

33
on:
44
workflow_call:
@@ -11,6 +11,9 @@ concurrency:
1111
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
1212
cancel-in-progress: true
1313

14+
env:
15+
FORCE_COLOR: 1
16+
1417
jobs:
1518
build_doc:
1619
name: 'Docs'
@@ -25,9 +28,15 @@ jobs:
2528
- name: 'Check out latest PR branch commit'
2629
uses: actions/checkout@v4
2730
with:
28-
ref: ${{ github.event.pull_request.head.sha }}
31+
ref: >-
32+
${{
33+
github.event_name == 'pull_request'
34+
&& github.event.pull_request.head.sha
35+
|| ''
36+
}}
2937
# Adapted from https://github.com/actions/checkout/issues/520#issuecomment-1167205721
3038
- name: 'Fetch commits to get branch diff'
39+
if: github.event_name == 'pull_request'
3140
run: |
3241
# Fetch enough history to find a common ancestor commit (aka merge-base):
3342
git fetch origin ${{ env.refspec_pr }} --depth=$(( ${{ github.event.pull_request.commits }} + 1 )) \
@@ -86,7 +95,7 @@ jobs:
8695
# Run "doctest" on HEAD as new syntax doesn't exist in the latest stable release
8796
doctest:
8897
name: 'Doctest'
89-
runs-on: ubuntu-latest
98+
runs-on: ubuntu-22.04
9099
timeout-minutes: 60
91100
steps:
92101
- uses: actions/checkout@v4

.github/workflows/reusable-macos.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
name: Reusable macOS
2+
13
on:
24
workflow_call:
35
inputs:
@@ -35,7 +37,7 @@ jobs:
3537
path: config.cache
3638
key: ${{ github.job }}-${{ inputs.os }}-${{ env.IMAGE_VERSION }}-${{ inputs.config_hash }}
3739
- name: Install Homebrew dependencies
38-
run: brew install pkg-config [email protected] xz gdbm tcl-tk
40+
run: brew install pkg-config [email protected] xz gdbm tcl-tk make
3941
- name: Configure CPython
4042
run: |
4143
GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \
@@ -44,14 +46,27 @@ jobs:
4446
--config-cache \
4547
--with-pydebug \
4648
--enable-slower-safety \
49+
--enable-safety \
4750
${{ inputs.free-threading && '--disable-gil' || '' }} \
4851
--prefix=/opt/python-dev \
4952
--with-openssl="$(brew --prefix [email protected])"
5053
- name: Build CPython
51-
run: set -o pipefail; make -j8 2>&1 | tee compiler_output.txt
54+
if : ${{ inputs.free-threading || inputs.os != 'macos-13' }}
55+
run: gmake -j8
56+
- name: Build CPython for compiler warning check
57+
if : ${{ !inputs.free-threading && inputs.os == 'macos-13' }}
58+
run: set -o pipefail; gmake -j8 --output-sync 2>&1 | tee compiler_output_macos.txt
5259
- name: Display build info
5360
run: make pythoninfo
5461
- name: Check compiler warnings
55-
run: python3 Tools/build/check_warnings.py --compiler-output-file-path=compiler_output.txt --warning-ignore-file-path=Tools/build/.warningignore_macos --compiler-output-type=clang
62+
if : ${{ !inputs.free-threading && inputs.os == 'macos-13' }}
63+
run: >-
64+
python3 Tools/build/check_warnings.py
65+
--compiler-output-file-path=compiler_output_macos.txt
66+
--warning-ignore-file-path=Tools/build/.warningignore_macos
67+
--compiler-output-type=clang
68+
--fail-on-regression
69+
--fail-on-improvement
70+
--path-prefix="./"
5671
- name: Tests
5772
run: make test

0 commit comments

Comments
 (0)