Commit graph

131183 commits

Author SHA1 Message Date
Diego Russo
db967dca64 GH-126910: Add GNU backtrace support for unwinding JIT frames 2026-05-02 18:59:00 +01:00
Pablo Galindo Salgado
efcac6f281
gh-149214: Fix non ascii characters in remote debugging (#149228) 2026-05-02 15:07:28 +01:00
Diego Russo
c7b7ca2cd5
GH-126910: Add gdb support for unwinding JIT frames (#146071)
Co-authored-by: Pablo Galindo Salgado <pablogsal@gmail.com>
2026-05-02 13:42:03 +00:00
Raymond Hettinger
da09ef807b
gh-149221: Minor comment edit (gh-149278)
Minor comment edit
2026-05-02 08:29:06 -05:00
lighting9999
4f0cfe53cb
gh-149221:Fix binomialvariate Function for random module (gh-149222) 2026-05-02 07:55:43 -05:00
Sergey Miryanov
fea2a57282
GH-148932: Improve error message if profiling.sampling run from venv on Windows platform (#149247) 2026-05-02 09:23:16 +00:00
Serhiy Storchaka
b89735625d
gh-148914: Fix memoization of in-band PickleBuffer in the Python implementation (GH-149052)
Previously, identical PickleBuffers did not preserve identity.
Also, empty writable PickleBuffer memoized an empty bytearray object
in place of b'' which is a singleton in CPython, so the following
references to b'' were unpickled as an empty bytearray object.
2026-05-02 12:04:05 +03:00
Russell Keith-Magee
e635ad2c68
gh-149254: Bump OpenSSL versions for iOS and Android. (#149270)
Bump OpenSSL versions for iOS and Android.
2026-05-02 16:50:32 +08:00
Raymond Hettinger
bb5e41efdb
gh-149244 Document statistics functions that require sequence inputs. (gh-149264) 2026-05-01 22:58:23 -05:00
htjworld
0f5cd57f80
statistics: Fix geometric_mean() error message for negative inputs (#149246) 2026-05-01 22:54:24 -05:00
Ned Deily
0e2c055892
gh-149254: Update macOS installer to use OpenSSL 3.5.6. (#149262) 2026-05-01 23:52:43 -04:00
W. H. Wang
ff35fe4633
gh-149117: Set ImportError.name on errors from runpy.run_module/run_path (gh-149159)
Set ImportError.name on errors from runpy.run_module/run_path

`runpy.run_module()` and `runpy.run_path()` now set the `name` attribute
of the `ImportError` they raise to the requested module name, matching
the behaviour of a regular import statement (previously `name` was
always `None`, which broke introspection).

The `name=` kwarg is gated on `issubclass(error, ImportError)` because
`_get_module_details()` is also used by `_run_module_as_main()` with
a private `_Error` sentinel class. `_Error` does not subclass
ImportError, and `BaseException.__init__` rejects unknown kwargs at
the C level, so passing `name=` unconditionally would break the
`python -m foo` codepath.
2026-05-02 12:27:23 +10:00
Brett Cannon
be9c7cb4b5
GH-149252: Update WASI SDK version from 32 to 33 (#149253)
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2026-05-01 16:51:06 -07:00
Amp Tell
bb911a2319
gh-75707: tarfile: Add optional open() argument "mtime" (GH-138117)
This makes it possible to set the gzip header mtime field without
overriding time.time(), making it useful when creating reproducible
archives.

* 📜🤖 Added by blurb_it.

---------

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
2026-05-01 15:39:58 -07:00
Raymond Hettinger
91e871a307
gh-124397: Add free-threading support for iterators. (gh-148894) 2026-05-01 16:31:00 -05:00
Pablo Galindo Salgado
3236773257
gh-149202: Implement PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python (#149201)
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Emma Smith <emma@emmatyping.dev>
2026-05-01 21:16:11 +01:00
sobolevn
690e0de706
gh-149083: Change several other docs examples to use sentinel() (#149213) 2026-05-01 22:53:28 +03:00
sobolevn
8c611e12bc
Fix source link in Doc/howto/descriptor.rst (#149215) 2026-05-01 19:37:14 +00:00
Sam Bull
6040d65843
Clarify max_length in zstd & zlib decompressor documentation (#143805)
Also provide examples of how to decompress data using max_length for zstd and zlib.

Co-authored-by: Emma Smith <emma@emmatyping.dev>
2026-05-01 12:32:50 -07:00
Hugo van Kemenade
4e3811f053
gh-148726: Document the GC change in What's New in Python 3.14 (#149209) 2026-05-01 18:57:09 +00:00
Ken Jin
fa542449bb
gh-139038: Update final JIT figures for 3.15rc1 (#149210)
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-05-01 18:55:38 +00:00
Hugo van Kemenade
60b751c018
Build mpdecimal from source to workaround unreliable launchpad.net (#149248) 2026-05-01 18:39:36 +00:00
Mike Edmunds
b605573828
gh-81074: Allow non-ASCII addr_spec in email.headerregistry.Address (#122477)
The email.headerregistry.Address constructor raised an error if
addr_spec contained a non-ASCII character. (But it fully supports
non-ASCII in the separate username and domain args.) This change
removes the error for a non-ASCII addr_spec, as well as the
Defect that triggered it.  In the unicode era non-ascii is not a
defect, though it is an error when an attempt is made to serialize
it to ascii.  The serialization issue was handled in #122540.
2026-05-01 14:00:46 -04:00
Mike Edmunds
d96ffc1832
gh-83938, gh-122476: Stop incorrectly RFC 2047 encoding non-ASCII email addresses (#122540)
The email generators had been incorrectly flattening non-ASCII email
addresses to RFC 2047 encoded-word format, leaving them undeliverable.
(RFC 2047 prohibits use of encoded-word in an addr-spec.)
This change raises a HeaderWriteError when attempting to flatten an
EmailMessage with a non-ASCII addr-spec and a policy with utf8=False.
(Exception: If the non-ASCII address originated from parsing a message,
it will be flattened as originally parsed, without error.)  This also applies
to other contexts in which RFC2047 words are not allowed by the RFCs.

Non-ASCII email addresses are supported when using a policy with
utf8=True (such as email.policy.SMTPUTF8) under RFCs 6531 and 6532.

Non-ASCII email address domains (but not localparts) can also be used
with non-SMTPUTF8 policies by encoding the domain as an IDNA A-label.
(The email package does not perform this encoding, because it cannot
know whether the caller wants IDNA 2003, IDNA 2008, or some other
variant such as UTS #46.)

Co-authored-by: R. David Murray <rdmurray@bitdance.com>
2026-05-01 13:52:06 -04:00
petervanvugt
9668d260a1
gh-148850: Fix memory sanitizer false positive in os.getrandom (GH-148851)
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-05-01 17:37:36 +02:00
sunmy2019
f2c7c0d2b7
gh-148967: Fix FFI type pointer handling for C complex support in set_stginfo_ffi_type_pointer (GH-148969) 2026-05-01 14:12:08 +02:00
Neko Asakura
0102c1d9b9
gh-149204: add _RROT_3 uop to reduce stack moves (GH-149205) 2026-05-01 12:35:31 +01:00
chemelnucfin
f4f82f0ab6
gh-133560: Clarified parser.md doc for pegen parser issue in using the existing Grammar/python.gram file. (GH-139194)
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-05-01 10:11:53 +02:00
Petr Viktorin
fcd53b6872
gh-145497: Use same size of static_types array in all builds (GH-149139)
When someone adds a new type but doesn't increment
`_Py_MAX_MANAGED_STATIC_BUILTIN_TYPES` or
`_Py_MAX_MANAGED_STATIC_EXT_TYPES`, JIT tests fail,
because JIT builds define an extra type.
But the JIT tests don't necessarily run for the commit
that causes the failure.

As a workaround, use the same size for the array for all
builds, potentially with an empty spot.
2026-05-01 09:41:28 +02:00
Tan Long
8066db5753
gh-149173: Fix inverted PYTHON_BASIC_REPL environment check in _pyrepl_available() (#149174) 2026-04-30 22:32:57 -07:00
Savannah Ostrowski
c0e0640039
GH-146475: Block Apple Clang for building JIT stencils (#149188) 2026-04-30 22:09:36 +00:00
R. David Murray
bdbb55c403
gh-148518 fix index error in local part attribute (#148522)
As part of fixing bpo-27931 code was introduced to get_bare_quoted_string
that added an empty Terminal if the quoted string was empty.  This isn't
the best answer in terms of the parse tree; we really want the token
list to be empty in that case.  But having it be empty resulted in
local_part raising the index error.  We find that same problem if we
try to parse an address consisting of a single dquote.  By fixing
local_part to not raise on an empty token list, we can have the
bare_quoted_string code correctly return an empty token list for
the empty string cases (two dquotes or a single dquote as the
entire addrespec, at the end of a line).
2026-04-30 17:41:43 -04:00
Maurycy Pawłowski-Wieroński
5110738779
gh-144319: Use transparent huge pages via madvise(MADV_HUGEPAGE) in pymalloc (#144353) 2026-04-30 22:18:07 +01:00
Serhiy Storchaka
c80e446e6b
gh-149028: Revert gh-92936 changes (GH-149182)
* Revert "gh-92936: update `http.cookies` docs post GH-113663 (#137566)"

This reverts commit d86c2257a6.

* Revert "gh-92936: allow double quote in cookie values (#113663)"

This reverts commit d7dbde8958.
2026-04-30 22:19:46 +03:00
Sergey Miryanov
1575a81bf2
GH-148726: Forward-port generational GC. (GH-148746)
The replaces the incremental GC with a forward port (from 3.13) of the generational GC.

Co-Authored-By: Neil Schemenauer <nas@arctrix.com>
Co-Authored-By: Zanie Blue <contact@zanie.dev>
Co-Authored-By: Sergey Miryanov <sergey.miryanov@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-30 12:19:13 -07:00
elenril
b413bc7a1f
bpo-39100: _header_value_parser: do not treat a Group as invalid-mailbox (#24872)
When an address in an address-list has garbage at the end, the code will
currently:

1. change the mailbox in the last parsed address into invalid-mailbox by
   overriding its token_type;
2. wrap the trailing garbage into another invalid-mailbox and append it
   to the last parsed address.

However, that does not take into account that an address may
also contain a Group instead of a single mailbox. In that case,
overwriting token_type leads to undesirable results, e.g. parsing an
email with the following 'To' header:

unlisted-recipients:; (no To-header on input)

raises an AttributeError from trying to treat the Group as a Mailbox.

Moreover it is questionable whether the previously parsed mailbox should
be treated as invalid in addition to the trailing garbage.

Address both of the above by wrapping the trailing garbage in a new
Address with a single invalid-mailbox, and append it to the AddressList
directly.

Changes the results of the
test_get_address_list_mailboxes_invalid_addresses test, where the
address list is now parsed into 4 mailboxes instead of 3 (all but the
first one are invalid).
2026-04-30 13:24:23 -04:00
Victor Stinner
a60520da3c
gh-147991: Speed up tomllib import time (GH-147992)
- Use lazy import for regular expressions.
- Use frozendict for string escapes

Co-authored-by: Taneli Hukkinen <hukkinen@eurecom.fr>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-04-30 18:25:32 +02:00
sobolevn
bf424816d0
gh-149083: Use sentinel in functools.rst docs (#149176) 2026-04-30 19:18:56 +03:00
John Comeau
cc5f8b5434
gh-113471: Add custom default Content-Type to http.server (#113475)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: donBarbos <donbarbos@proton.me>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2026-04-30 18:00:48 +03:00
Victor Stinner
f0e90d78eb
gh-148829: Move sentinelobject.h to Include/cpython/ (#149186)
This C API is not part of the limited C API, so move it to the
CPython C API.
2026-04-30 16:57:29 +02:00
Petr Viktorin
9d41e2a534
gh-111264: Add a note about untrusted input to tomllib docs (GH-146209)
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-30 16:33:13 +02:00
Eric Froemling
7686abe063
gh-149085: Add max_threads keyword to faulthandler.dump_traceback() (GH-149106)
Add a keyword-only `max_threads` argument to `dump_traceback()` and
`dump_traceback_later()`, defaulting to 100 to preserve existing
behavior. Allows server processes with many worker threads to dump
beyond the historical 100-thread cap (previously a hardcoded
`MAX_NTHREADS = 100` in `Python/traceback.c`).

The cap matters in practice: tstates are prepended to the
PyInterpreterState linked list, so the dump walks newest-first. With
more than 100 threads alive, the main thread (oldest, at the tail) is
silently elided from watchdog dumps -- exactly the thread that's
usually wanted.

The hardcoded value is moved to a new internal macro
`_Py_TRACEBACK_MAX_NTHREADS` in `pycore_traceback.h` so the in-tree
fatal-signal callers all reference one source of truth.
2026-04-30 09:27:57 -04:00
Petr Viktorin
4599335a83
gh-149122: Fix refleak in codegen (GH-149179) 2026-04-30 10:05:48 +00:00
Pieter Eendebak
7fe51ceae8
gh-149049: Fix jit binary op stack underflow (GH-149076) 2026-04-30 10:36:04 +01:00
Petr Viktorin
a94c7900be
Revert pylock.toml change to make MSI builds pass (#149175)
GH-149058 made MSI installer tests fail. GHA didn't catch this because MSI-related files weren't changed.

This reverts the build.bat change from commit 40dc61a0e0.

Also: a README style nitpick to trigger CI.
2026-04-30 10:30:34 +02:00
Tian Gao
234c12c0fc
GH-145378: Use PyREPL as the default input console for pdb (#145379) 2026-04-29 22:55:09 -07:00
Jelle Zijlstra
16952218d0
gh-149083: Convert dataclasses.MISSING and dataclasses.KW_ONLY to sentinels (#149086)
There were comments claiming these were implemented as custom classes to give a nicer
repr(), but the repr() wasn't all that nice:

>>> repr(dataclasses.MISSING)
'<dataclasses._MISSING_TYPE object at 0x1005e7e00>'
>>> repr(dataclasses.KW_ONLY)
'<dataclasses._KW_ONLY_TYPE object at 0x100884050>'

Sentinels are conceptually the right tool for these, so let's use them.

This does change the repr() of these two objects.
2026-04-29 19:39:29 -07:00
Hugo van Kemenade
8851a06e6e
gh-149026: Add colour to pickletools CLI output (#149027)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2026-04-29 18:33:05 +03:00
Victor Stinner
025a82f138
gh-149148: Upgrade bundled pip to 26.1 (#149150)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-29 17:36:01 +03:00
Jansen Price
f1588d460d
gh-148740: Fix uuid CLI with custom UUIDs for UUIDv3/v5 namespaces (#148741)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2026-04-29 15:44:22 +02:00