Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.12 backport gh 105236 #105358

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
c2b127e
Post 3.12.0b1
Yhg1s May 22, 2023
97f8547
[3.12] Add the 3.12 branch to the github workflows. (GH-104768) (#104…
miss-islington May 22, 2023
b44beac
[3.12] gh-87891: Add ABI check to CI (#104793)
encukou May 23, 2023
25b5ce7
[3.12] howto/urllib2: remove link to an outdated french translation (…
miss-islington May 23, 2023
905d419
[3.12] GH-104668: Don't call PyOS_* hooks in subinterpreters (GH-104760)
miss-islington May 23, 2023
e43fbbd
[3.12] GH-101291: Avoid using macros with casts in low-level long API…
miss-islington May 23, 2023
9aea1f2
[3.12] gh-99108: Release the GIL around hashlib built-in computation …
miss-islington May 23, 2023
f4e2049
[3.12] gh-104271: Fix auto() fallback in case of mixed type Enum (GH-…
itamaro May 23, 2023
5c8418c
[3.12] Remove gh-103207 changelog item as it was never part of any re…
miss-islington May 23, 2023
22c45c4
[3.12] gh-103295: fix stack overwrite on 32-bit in perf map test harn…
miss-islington May 23, 2023
b719dd8
[3.12] gh-104372: use == -1 before PyErr_Occurred (GH-104831) (#104833)
miss-islington May 24, 2023
d10d1e3
[3.12] gh-104797: Allow Protocols to inherit from collections.abc.Buf…
miss-islington May 24, 2023
a5c0ef8
[3.12] gh-102856: Add changes related to PEP 701 in 3.12 What's New d…
miss-islington May 24, 2023
2d685ec
[3.12] gh-102856: Add missing quote to fix doctest (GH-104852) (#104854)
miss-islington May 24, 2023
3d2ed89
[3.12] gh-104825: Remove implicit newline in the line attribute in to…
pablogsal May 24, 2023
b151660
[3.12] gh-101282: Enclose BOLT_APPLY_FLAGS value in double quotes (gh…
corona10 May 24, 2023
5e1799e
[3.12] gh-104719: IDLE - test existence of all tokenize references. (…
miss-islington May 24, 2023
25890eb
[3.12] gh-102856: Update "Formatted string literals" docs section aft…
miss-islington May 24, 2023
2b54ea5
[3.12] gh-104825: add omitted idlelib text fix (#104880)
terryjreedy May 24, 2023
45b88e0
gh-103207: The macOS 13 Ventura Installer.app permission problem is f…
ned-deily May 24, 2023
ddc29c8
[3.12] gh-104866: Tokenize should emit NEWLINE after exiting block wi…
miss-islington May 24, 2023
3d91d03
[3.12] Improve test coverage for is_typeddict (GH-104884) (#104889)
miss-islington May 24, 2023
b670214
[3.12] gh-104879: Fix TypeAliasType.__module__ in exec() (GH-104881) …
miss-islington May 24, 2023
c4bc97a
[3.12] gh-99108: Refresh HACL* (GH-104808) (#104893)
miss-islington May 24, 2023
a064233
[3.12] gh-104874: Document NewType.__supertype__ (GH-104875) (#104906)
miss-islington May 24, 2023
51eb009
[3.12] Fix test_importlib.test_side_effect_import() (GH-104840) (#104…
miss-islington May 25, 2023
4833f62
[3.12] Misc updates to Whatsnew 3.12 (GH-104912) (GH-104915)
miss-islington May 25, 2023
1a47d11
[3.12] Misc improvements to the itertools docs (GH-104916) (GH-104917)
miss-islington May 25, 2023
b328ba1
[3.12] Fix indentation in `json.AttrDict` REPL example (GH-104930) (#…
miss-islington May 25, 2023
d176f78
Improves the Windows MSI test run on PR (GH-104929)
miss-islington May 25, 2023
930efde
[3.12] gh-104935: typing: Fix interactions between `@runtime_checkabl…
miss-islington May 25, 2023
5c2971b
[3.12] gh-104372: Drop the GIL around the vfork() call. (GH-104782) (…
miss-islington May 25, 2023
8010cef
[3.12] gh-102024: Reduced _idle_semaphore.release calls (GH-102025) (…
miss-islington May 26, 2023
bd2cc41
[3.12] gh-104479: Update outdated tutorial floating-point reference (…
miss-islington May 26, 2023
6324458
[3.12] gh-104943: Remove mentions of old Python versions (GH-104945) …
miss-islington May 26, 2023
b31cfd2
[3.12] Fix typo in the tokenizer (GH-104950) (#104953)
miss-islington May 26, 2023
83bdfa4
[3.12] gh-104924: Fix `read()able` in `http.client` log messages (gh-…
miss-islington May 26, 2023
3158b4d
[3.12] gh-104955: Fix __release_buffer__ signature (GH-104956) (#104973)
miss-islington May 26, 2023
01af2b0
[3.12] Remove raw asserts in test_typing.py (GH-104951) (#104978)
miss-islington May 26, 2023
8ca2957
[3.12] gh-104972: Ensure that line attributes in tokens in the tokeni…
miss-islington May 26, 2023
97509ca
[3.12] CI: Cache config.cache across runs to speed up build (GH-10480…
hugovk May 26, 2023
bb1e57e
[3.12] gh-104984: remove kwargs and starargs from Call & ClassDef (GH…
miss-islington May 26, 2023
dcee0aa
[3.12] gh-103921: Document PEP 695 (GH-104642) (#104989)
miss-islington May 26, 2023
eca102d
[3.12] GH-104947: Make pathlib.PureWindowsPath comparisons consistent…
miss-islington May 26, 2023
305d78b
[3.12] GH-103631: Fix `PurePosixPath(PureWindowsPath(...))` separator…
miss-islington May 26, 2023
05189f3
[3.12] GH-101588: Deprecate pickle/copy/deepcopy support in itertools…
miss-islington May 26, 2023
2c02c68
[3.12] gh-104976: Ensure trailing dedent tokens are emitted as the pr…
miss-islington May 26, 2023
f625ec3
[3.12] gh-104839: Prevent test_venv AddressSanitizer spam (GH-105005)…
miss-islington May 27, 2023
368d177
[3.12] gh-104992: [What's New in 3.11] Document unittest.TestProgram.…
miss-islington May 27, 2023
edd0cb8
[3.12] CI: Precompute hash for config cache key in check_source job (…
miss-islington May 27, 2023
2b176bc
[3.12] gh-105017: Fix including additional NL token when using CRLF (…
miss-islington May 27, 2023
5426ff1
[3.12] gh-104497: Make tkinter test pass with tk 8.7 (GH-104789) (#10…
miss-islington May 27, 2023
36a4227
[3.12] gh-104992: [What's New in 3.12] Document unittest.TestProgram.…
miss-islington May 28, 2023
41b622b
[3.12] gh-105013: Fix inspect.getsource with parenthesized multiline …
miss-islington May 28, 2023
3f8d5d9
[3.12] gh-105017: Include CRLF lines in strings and column numbers (G…
miss-islington May 28, 2023
74bbc60
[3.12] Document PEP 698 and other new typing features in What's New (…
miss-islington May 28, 2023
5dc6b18
Fix compiler warning in unicodeobject.c (GH-105050)
miss-islington May 29, 2023
635ce29
gh-104803: Implement ntpath.isdevdrive for checking whether a path is…
miss-islington May 29, 2023
68bf3fe
gh-104820: Fixes os.stat on Windows to better handle file systems tha…
miss-islington May 29, 2023
56722ef
gh-103646: Remove --include-pip-user from default APPX package build …
miss-islington May 29, 2023
6794526
[3.12] GH-89455: Add missing attributes (added in 3.11) to traceback …
miss-islington May 29, 2023
7f04a15
[3.12] gh-105077: Fix test_tkinter refleak checking (GH-105078) (GH-1…
miss-islington May 30, 2023
fd6b913
[3.12] gh-102251: Fix reference leak in _testsinglephase initializati…
miss-islington May 30, 2023
7899fac
[3.12] gh-104799: Move location of type_params AST fields (GH-104828)…
miss-islington May 30, 2023
b45df73
[3.12] gh-105071: add PyUnstable_Exc_PrepReraiseStar to expose except…
iritkatriel May 30, 2023
4e7d41f
[3.12] Enable the ABI check job to publish the updated ABI data file …
zooba May 30, 2023
9fb7abb
[3.12] gh-103921: Minor PEP-695 fixes to the `ast` module docs (GH-10…
miss-islington May 30, 2023
aeee5a5
[3.12] gh-105071: add missing versionadded directive (GH-105097) (#10…
miss-islington May 30, 2023
9ae49e3
gh-88745: Add _winapi.CopyFile2 and update shutil.copy2 to use it (GH…
miss-islington May 30, 2023
5fff491
[3.12] gh-105035: fix super() calls on unusual types (e.g. meta-types…
miss-islington May 30, 2023
af7b55d
[3.12] gh-89886: Properly quote Autoconf macro arguments (#105062) (#…
erlend-aasland May 30, 2023
e3fcd9e
[3.12] gh-103142: Update macOS installer to use OpenSSL 1.1.1u. (GH-1…
miss-islington May 31, 2023
4729100
[3.12] gh-105091: stable_abi.py: Remove "Unixy" check from --all on o…
miss-islington May 31, 2023
2f8c22f
[3.12] gh-105042: Disable unmatched parens syntax error in python tok…
miss-islington May 31, 2023
c687946
[3.12] gh-105069: Add a readline-like callable to the tokenizer to co…
miss-islington May 31, 2023
01b42f9
[3.12] gh-105096: Reformat wave documentation (#105136) (#105138)
vstinner May 31, 2023
d3c21a9
[3.12] gh-97933: add LOAD_FAST_AND_CLEAR to 3.12 What's New bytecode …
miss-islington May 31, 2023
4f477c7
[3.12] gh-87729: add LOAD_SUPER_ATTR to 3.12 What's New (GH-105125) (…
miss-islington May 31, 2023
076f3cd
[3.12] gh-105144: Runtime-checkable protocols: move all 'sanity check…
miss-islington May 31, 2023
e7cb216
[3.12] GH-105113: Improve performance of `pathlib.PurePath.match()` (…
barneygale May 31, 2023
f87c6d1
[3.12] gh-102304: Fix 2 New Stable ABI Functions (gh-104762) (gh-105123)
ericsnowcurrently May 31, 2023
8b51666
[3.12] gh-102251: Explicitly free state for test modules with state i…
miss-islington May 31, 2023
dbd7d7c
gh-105146: Update links at end of Windows installer (uninstall/repair…
miss-islington May 31, 2023
6375287
[3.12] gh-89886: Rely on HAVE_SYS_TIME_H (GH-105058) (#105192)
miss-islington Jun 1, 2023
25543ae
[3.12] gh-103142: Upgrade binary builds and CI to OpenSSL 1.1.1u (GH-…
miss-islington Jun 1, 2023
83c7386
[3.12] GH-89886: Bump to GNU Autoconf v2.71 (#104925) (#105207)
erlend-aasland Jun 1, 2023
c38ceb0
[3.12] gh-105020: Share tp_bases and tp_mro Between Interpreters For …
miss-islington Jun 1, 2023
d2be5c7
[3.12] gh-104341: Call _PyEval_ReleaseLock() with NULL When Finalizin…
miss-islington Jun 1, 2023
d57ee81
[3.12] gh-104614: Make Sure ob_type is Always Set Correctly by PyType…
miss-islington Jun 1, 2023
e6d5e63
[3.12] gh-104799: Default missing lists in AST to the empty list (GH-…
miss-islington Jun 2, 2023
46cc4f0
[3.12] gh-105184: document that marshal functions can fail and need t…
miss-islington Jun 2, 2023
103ae4e
[3.12] gh-105194: Fix format specifier escaped characters in f-string…
miss-islington Jun 2, 2023
00fe618
[3.12] gh-102778: update documentation of PyErr_PrintEx and traceback…
miss-islington Jun 2, 2023
72d5dfa
[3.12] gh-104614: Fix potential ref. leak in _testcapimodule/get_basi…
miss-islington Jun 2, 2023
d3922c4
[3.12] gh-105080: Fixed inconsistent signature on derived classes (GH…
miss-islington Jun 2, 2023
f629d5f
[3.12] gh-89415: Mention new `IP_*` constants in `socket` module in t…
miss-islington Jun 3, 2023
c7a9d96
[3.12] gh-104690 Disallow thread creation and fork at interpreter fin…
miss-islington Jun 4, 2023
6b61fe9
[3.12] Fix typo in Python 3.12 What's New (GH-105278) (#105282)
miss-islington Jun 4, 2023
9ce3312
[3.12] gh-104882: Docs: fix description of relationship between `sock…
miss-islington Jun 4, 2023
3e7ddc2
[3.12] gh-98963: Restore the ability to have a dict-less property. (G…
miss-islington Jun 5, 2023
6d03541
[3.12] gh-105164: Detect annotations inside match blocks (GH-105177) …
miss-islington Jun 5, 2023
5175026
[3.12] gh-105237: Allow calling `issubclass(X, typing.Protocol)` agai…
miss-islington Jun 5, 2023
2031238
[3.12] gh-105280: Ensure `isinstance([], collections.abc.Mapping)` al…
miss-islington Jun 5, 2023
83fc562
[3.12] gh-105286: Improve `typing.py` docstrings (#105287) (#105319)
AlexWaygood Jun 5, 2023
dbc179e
[3.12] Clarify that error messages are better with PEP 701 (GH-105150…
miss-islington Jun 5, 2023
0c51318
[3.12] What's New in 3.12: List 'Improved Modules' alphabetically (GH…
hugovk Jun 5, 2023
05b6153
[3.12] gh-97908: CAPI docs: Remove repeated struct names from member …
miss-islington Jun 5, 2023
ab660e9
[3.12] gh-89412: Add missing attributes (added in 3.10) to traceback …
miss-islington Jun 5, 2023
3aa3be4
[3.12] gh-105324: Fix tokenize module main function for stdin (GH-105…
miss-islington Jun 5, 2023
bdd2b89
[3.12] gh-90005: Don't link with libbsd if not needed (#105236)
erlend-aasland Jun 6, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions .azure-pipelines/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
variables:
testRunTitle: '$(build.sourceBranchName)-linux'
testRunPlatform: linux
openssl_version: 1.1.1t
openssl_version: 1.1.1u

steps:
- template: ./posix-steps.yml
Expand All @@ -83,7 +83,7 @@ jobs:
variables:
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
testRunPlatform: linux-coverage
openssl_version: 1.1.1t
openssl_version: 1.1.1u

steps:
- template: ./posix-steps.yml
Expand Down
4 changes: 2 additions & 2 deletions .azure-pipelines/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
variables:
testRunTitle: '$(system.pullRequest.TargetBranch)-linux'
testRunPlatform: linux
openssl_version: 1.1.1t
openssl_version: 1.1.1u

steps:
- template: ./posix-steps.yml
Expand All @@ -83,7 +83,7 @@ jobs:
variables:
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
testRunPlatform: linux-coverage
openssl_version: 1.1.1t
openssl_version: 1.1.1u

steps:
- template: ./posix-steps.yml
Expand Down
115 changes: 102 additions & 13 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
push:
branches:
- 'main'
- '3.12'
- '3.11'
- '3.10'
- '3.9'
Expand All @@ -16,6 +17,7 @@ on:
pull_request:
branches:
- 'main'
- '3.12'
- '3.11'
- '3.10'
- '3.9'
Expand All @@ -37,6 +39,7 @@ jobs:
outputs:
run_tests: ${{ steps.check.outputs.run_tests }}
run_hypothesis: ${{ steps.check.outputs.run_hypothesis }}
config_hash: ${{ steps.config_hash.outputs.hash }}
steps:
- uses: actions/checkout@v3
- name: Check for source changes
Expand Down Expand Up @@ -72,6 +75,53 @@ jobs:
echo "Run hypothesis tests"
echo "run_hypothesis=true" >> $GITHUB_OUTPUT
fi
- name: Compute hash for config cache key
id: config_hash
run: |
echo "hash=${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}" >> $GITHUB_OUTPUT

check_abi:
name: 'Check if the ABI has changed'
runs-on: ubuntu-22.04
needs: check_source
if: needs.check_source.outputs.run_tests == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- name: Install dependencies
run: |
sudo ./.github/workflows/posix-deps-apt.sh
sudo apt-get install -yq abigail-tools
- name: Build CPython
env:
CFLAGS: -g3 -O0
run: |
# Build Python with the libpython dynamic library
./configure --enable-shared
make -j4
- name: Check for changes in the ABI
id: check
run: |
if ! make check-abidump; then
echo "Generated ABI file is not up to date."
echo "Please add the release manager of this branch as a reviewer of this PR."
echo ""
echo "The up to date ABI file should be attached to this build as an artifact."
echo ""
echo "To learn more about this check: https://devguide.python.org/setup/#regenerate-the-abi-dump"
echo ""
exit 1
fi
- name: Generate updated ABI files
if: ${{ failure() && steps.check.conclusion == 'failure' }}
run: |
make regen-abidump
- uses: actions/upload-artifact@v3
name: Publish updated ABI files
if: ${{ failure() && steps.check.conclusion == 'failure' }}
with:
name: abi-data
path: ./Doc/data/*.abi

check_generated_files:
name: 'Check if generated files are up to date'
Expand All @@ -81,23 +131,28 @@ jobs:
if: needs.check_source.outputs.run_tests == 'true'
steps:
- uses: actions/checkout@v3
- name: Restore config.cache
uses: actions/cache@v3
with:
path: config.cache
key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
- uses: actions/setup-python@v3
- name: Install Dependencies
run: sudo ./.github/workflows/posix-deps-apt.sh
- name: Add ccache to PATH
run: echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
- name: Check Autoconf version 2.69 and aclocal 1.16.3
- name: Check Autoconf and aclocal versions
run: |
grep "Generated by GNU Autoconf 2.69" configure
grep "aclocal 1.16.3" aclocal.m4
grep "Generated by GNU Autoconf 2.71" configure
grep "aclocal 1.16.4" aclocal.m4
grep -q "runstatedir" configure
grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4
- name: Configure CPython
run: |
# Build Python with the libpython dynamic library
./configure --with-pydebug --enable-shared
./configure --config-cache --with-pydebug --enable-shared
- name: Regenerate autoconf files with container image
run: make regen-configure
- name: Build CPython
Expand Down Expand Up @@ -178,6 +233,11 @@ jobs:
PYTHONSTRICTEXTENSIONBUILD: 1
steps:
- uses: actions/checkout@v3
- name: Restore config.cache
uses: actions/cache@v3
with:
path: config.cache
key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
- name: Install Homebrew dependencies
run: brew install pkg-config openssl@1.1 xz gdbm tcl-tk
- name: Configure CPython
Expand All @@ -186,6 +246,7 @@ jobs:
LDFLAGS="-L$(brew --prefix gdbm)/lib -I$(brew --prefix xz)/lib" \
PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \
./configure \
--config-cache \
--with-pydebug \
--prefix=/opt/python-dev \
--with-openssl="$(brew --prefix openssl@1.1)"
Expand All @@ -203,7 +264,7 @@ jobs:
needs: check_source
if: needs.check_source.outputs.run_tests == 'true'
env:
OPENSSL_VER: 1.1.1t
OPENSSL_VER: 1.1.1u
PYTHONSTRICTEXTENSIONBUILD: 1
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -238,9 +299,18 @@ jobs:
run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
- name: Bind mount sources read-only
run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
- name: Restore config.cache
uses: actions/cache@v3
with:
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
- name: Configure CPython out-of-tree
working-directory: ${{ env.CPYTHON_BUILDDIR }}
run: ../cpython-ro-srcdir/configure --with-pydebug --with-openssl=$OPENSSL_DIR
run: |
../cpython-ro-srcdir/configure \
--config-cache \
--with-pydebug \
--with-openssl=$OPENSSL_DIR
- name: Build CPython out-of-tree
working-directory: ${{ env.CPYTHON_BUILDDIR }}
run: make -j4
Expand All @@ -263,14 +333,19 @@ jobs:
strategy:
fail-fast: false
matrix:
openssl_ver: [1.1.1t, 3.0.8, 3.1.0-beta1]
openssl_ver: [1.1.1u, 3.0.9, 3.1.1]
env:
OPENSSL_VER: ${{ matrix.openssl_ver }}
MULTISSL_DIR: ${{ github.workspace }}/multissl
OPENSSL_DIR: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}/lib
steps:
- uses: actions/checkout@v3
- name: Restore config.cache
uses: actions/cache@v3
with:
path: config.cache
key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
- name: Register gcc problem matcher
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
- name: Install Dependencies
Expand All @@ -295,7 +370,7 @@ jobs:
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
- name: Configure CPython
run: ./configure --with-pydebug --with-openssl=$OPENSSL_DIR
run: ./configure --config-cache --with-pydebug --with-openssl=$OPENSSL_DIR
- name: Build CPython
run: make -j4
- name: Display build info
Expand All @@ -304,13 +379,13 @@ jobs:
run: ./python Lib/test/ssltests.py

test_hypothesis:
name: "Hypothesis Tests on Ubuntu"
name: "Hypothesis tests on Ubuntu"
runs-on: ubuntu-20.04
timeout-minutes: 60
needs: check_source
if: needs.check_source.outputs.run_tests == 'true' && needs.check_source.outputs.run_hypothesis == 'true'
env:
OPENSSL_VER: 1.1.1t
OPENSSL_VER: 1.1.1u
PYTHONSTRICTEXTENSIONBUILD: 1
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -345,9 +420,18 @@ jobs:
run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
- name: Bind mount sources read-only
run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
- name: Restore config.cache
uses: actions/cache@v3
with:
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
- name: Configure CPython out-of-tree
working-directory: ${{ env.CPYTHON_BUILDDIR }}
run: ../cpython-ro-srcdir/configure --with-pydebug --with-openssl=$OPENSSL_DIR
run: |
../cpython-ro-srcdir/configure \
--config-cache \
--with-pydebug \
--with-openssl=$OPENSSL_DIR
- name: Build CPython out-of-tree
working-directory: ${{ env.CPYTHON_BUILDDIR }}
run: make -j4
Expand Down Expand Up @@ -410,11 +494,16 @@ jobs:
needs: check_source
if: needs.check_source.outputs.run_tests == 'true'
env:
OPENSSL_VER: 1.1.1t
OPENSSL_VER: 1.1.1u
PYTHONSTRICTEXTENSIONBUILD: 1
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
steps:
- uses: actions/checkout@v3
- name: Restore config.cache
uses: actions/cache@v3
with:
path: config.cache
key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
- name: Register gcc problem matcher
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
- name: Install Dependencies
Expand Down Expand Up @@ -443,7 +532,7 @@ jobs:
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
- name: Configure CPython
run: ./configure --with-address-sanitizer --without-pymalloc
run: ./configure --config-cache --with-address-sanitizer --without-pymalloc
- name: Build CPython
run: make -j4
- name: Display build info
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/build_msi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ on:
- '3.*'
paths:
- 'Tools/msi/**'
- '.github/workflows/build_msi.yml'
pull_request:
branches:
- 'main'
- '3.*'
paths:
- 'Tools/msi/**'
- '.github/workflows/build_msi.yml'

permissions:
contents: read
Expand All @@ -33,4 +35,4 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Build CPython installer
run: .\Tools\msi\build.bat -${{ matrix.type }}
run: .\Tools\msi\build.bat --doc -${{ matrix.type }}
2 changes: 2 additions & 0 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
#push:
# branches:
# - 'main'
# - '3.12'
# - '3.11'
# - '3.10'
# - '3.9'
Expand All @@ -15,6 +16,7 @@ on:
pull_request:
branches:
- 'main'
- '3.12'
- '3.11'
- '3.10'
- '3.9'
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,3 @@ Python/frozen_modules/MANIFEST
# Ignore ./python binary on Unix but still look into ./Python/ directory.
/python
!/Python/

# main branch only: ABI files are not checked/maintained
Doc/data/python*.abi
23 changes: 20 additions & 3 deletions Doc/c-api/exceptions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,14 @@ Printing and clearing
Call this function **only** when the error indicator is set. Otherwise it
will cause a fatal error!

If *set_sys_last_vars* is nonzero, the variables :data:`sys.last_type`,
:data:`sys.last_value` and :data:`sys.last_traceback` will be set to the
type, value and traceback of the printed exception, respectively.
If *set_sys_last_vars* is nonzero, the variable :data:`sys.last_exc` is
set to the printed exception. For backwards compatibility, the
deprecated variables :data:`sys.last_type`, :data:`sys.last_value` and
:data:`sys.last_traceback` are also set to the type, value and traceback
of this exception, respectively.

.. versionchanged:: 3.12
The setting of :data:`sys.last_exc` was added.


.. c:function:: void PyErr_Print()
Expand Down Expand Up @@ -772,6 +777,18 @@ Exception Objects

Set :attr:`~BaseException.args` of exception *ex* to *args*.

.. c:function:: PyObject* PyUnstable_Exc_PrepReraiseStar(PyObject *orig, PyObject *excs)

Implement part of the interpreter's implementation of :keyword:`!except*`.
*orig* is the original exception that was caught, and *excs* is the list of
the exceptions that need to be raised. This list contains the the unhandled
part of *orig*, if any, as well as the exceptions that were raised from the
:keyword:`!except*` clauses (so they have a different traceback from *orig*) and
those that were reraised (and have the same traceback as *orig*).
Return the :exc:`ExceptionGroup` that needs to be reraised in the end, or
``None`` if there is nothing to reraise.

.. versionadded:: 3.12

.. _unicodeexceptions:

Expand Down
4 changes: 4 additions & 0 deletions Doc/c-api/marshal.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,16 @@ unmarshalling. Version 2 uses a binary format for floating point numbers.
the least-significant 32 bits of *value*; regardless of the size of the
native :c:expr:`long` type. *version* indicates the file format.
This function can fail, in which case it sets the error indicator.
Use :c:func:`PyErr_Occurred` to check for that.
.. c:function:: void PyMarshal_WriteObjectToFile(PyObject *value, FILE *file, int version)
Marshal a Python object, *value*, to *file*.
*version* indicates the file format.
This function can fail, in which case it sets the error indicator.
Use :c:func:`PyErr_Occurred` to check for that.
.. c:function:: PyObject* PyMarshal_WriteObjectToString(PyObject *value, int version)
Expand Down