]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
59 min agoCorrect timing sensitivity in iOS testing Makefile target. (GH-118620) main
Russell Keith-Magee [Mon, 6 May 2024 02:34:59 +0000 (10:34 +0800)] 
Correct timing sensitivity in iOS testing Makefile target. (GH-118620)

5 hours agoAdd Lysandros Nikolaou to the News entry of gh-111201 (#118616)
Pablo Galindo Salgado [Sun, 5 May 2024 22:13:50 +0000 (23:13 +0100)] 
Add Lysandros Nikolaou to the News entry of gh-111201 (#118616)

5 hours agogh-111140: minor docs typos cleanup in the C example API calls. (#118612)
Gregory P. Smith [Sun, 5 May 2024 21:43:42 +0000 (14:43 -0700)] 
gh-111140: minor docs typos cleanup in the C example API calls. (#118612)

6 hours agogh-118605: Fix reference leak in FrameLocalsProxy (#118607)
Tian Gao [Sun, 5 May 2024 21:31:35 +0000 (14:31 -0700)] 
gh-118605: Fix reference leak in FrameLocalsProxy (#118607)

Also add some error checks.

7 hours agoMove pathlib implementation out of `__init__.py` (#118582)
Barney Gale [Sun, 5 May 2024 19:57:19 +0000 (20:57 +0100)] 
Move pathlib implementation out of `__init__.py` (#118582)

Use the `__init__.py` file only for imports that define the API, following the example of asyncio.

8 hours agogh-111201: A new Python REPL (GH-111567)
Pablo Galindo Salgado [Sun, 5 May 2024 19:32:23 +0000 (21:32 +0200)] 
gh-111201: A new Python REPL (GH-111567)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Marta Gómez Macías <mgmacias@google.com>
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
8 hours agogh-117549: Don't use designated initializers in headers (#118580)
Guido van Rossum [Sun, 5 May 2024 19:28:55 +0000 (12:28 -0700)] 
gh-117549: Don't use designated initializers in headers (#118580)

The designated initializer syntax in static inline functions in pycore_backoff.h
causes problems for C++ or MSVC users who aren't yet using C++20.
While internal, pycore_backoff.h is included (indirectly, via pycore_code.h)
by some key 3rd party software that does so for speed.

8 hours agogh-117389: Fix `test_compileall.EncodingTest` (#117390)
Nikita Sobolev [Sun, 5 May 2024 18:46:37 +0000 (21:46 +0300)] 
gh-117389: Fix `test_compileall.EncodingTest` (#117390)

10 hours agoFix negative bandwidth test and add online code path test. (gh-118600)
Raymond Hettinger [Sun, 5 May 2024 17:29:23 +0000 (12:29 -0500)] 
Fix negative bandwidth test and add online code path test. (gh-118600)

12 hours agogh-74929: Rudimentary docs for PEP 667 (#118581)
Guido van Rossum [Sun, 5 May 2024 15:31:26 +0000 (08:31 -0700)] 
gh-74929: Rudimentary docs for PEP 667 (#118581)

This is *not* sufficient for the final 3.13 release, but it will do for beta 1:

- What's new entry
- Updated changelog entry (news blurb)
- Mention the proxy for f_globals in the datamodel and Python frame object docs

This doesn't have any C API details (what's new refers to the PEP).

13 hours agoGH-111744: Make breakpoint() enter the debugger immediately (GH-118579)
Tian Gao [Sun, 5 May 2024 14:05:01 +0000 (07:05 -0700)] 
GH-111744: Make breakpoint() enter the debugger immediately (GH-118579)

13 hours agogh-101137: Add `text/x-rst` to `mimetypes` (#118593)
Nikita Sobolev [Sun, 5 May 2024 13:39:50 +0000 (16:39 +0300)] 
gh-101137: Add `text/x-rst` to `mimetypes` (#118593)

14 hours agogh-83505: Add markdown mimetype mapping (#17995)
Ryan Batchelder [Sun, 5 May 2024 13:09:59 +0000 (09:09 -0400)] 
gh-83505: Add markdown mimetype mapping (#17995)

14 hours agogh-118518: Use the raw syscall directly for gettid (#118592)
Pablo Galindo Salgado [Sun, 5 May 2024 12:37:32 +0000 (14:37 +0200)] 
gh-118518: Use the raw syscall directly for gettid (#118592)

17 hours agogh-110850: Remove _PyTime_TimeUnchecked() function (#118552)
Victor Stinner [Sun, 5 May 2024 10:15:19 +0000 (12:15 +0200)] 
gh-110850: Remove _PyTime_TimeUnchecked() function (#118552)

Use the new public Raw functions:

* _PyTime_PerfCounterUnchecked() with PyTime_PerfCounterRaw()
* _PyTime_TimeUnchecked() with PyTime_TimeRaw()
* _PyTime_MonotonicUnchecked() with PyTime_MonotonicRaw()

Remove internal functions:

* _PyTime_PerfCounterUnchecked()
* _PyTime_TimeUnchecked()
* _PyTime_MonotonicUnchecked()

20 hours agogh-118476: Fix corner cases in islice() rough equivalent. (Gh-118559)
Raymond Hettinger [Sun, 5 May 2024 06:42:30 +0000 (01:42 -0500)] 
gh-118476: Fix corner cases in islice() rough equivalent. (Gh-118559)

20 hours agoMinor edit: Simplify and tighten the distribution test (gh-118585)
Raymond Hettinger [Sun, 5 May 2024 06:35:06 +0000 (01:35 -0500)] 
Minor edit: Simplify and tighten the distribution test (gh-118585)

Simplify and tighten the distribution test

21 hours agogh-118131: Command-line interface for the `random` module (#118132)
Hugo van Kemenade [Sun, 5 May 2024 06:30:03 +0000 (08:30 +0200)] 
gh-118131: Command-line interface for the `random` module (#118132)

21 hours agogh-118455: Fix mangle_from_ default value in email.policy.Policy.__doc__ (#118456)
wim glenn [Sun, 5 May 2024 06:18:04 +0000 (01:18 -0500)] 
gh-118455: Fix mangle_from_ default value in email.policy.Policy.__doc__ (#118456)

* Fix mangle_from_ default value in email.policy.Policy.__doc__

The docstring says it defaults to True, but it actually defaults
to False. Only the Compat32 subclass overrides that.

---------

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
22 hours agogh-118164: Break a loop between _pydecimal and _pylong and optimize int to str conver...
Serhiy Storchaka [Sun, 5 May 2024 05:20:06 +0000 (08:20 +0300)] 
gh-118164: Break a loop between _pydecimal and _pylong and optimize int to str conversion (GH-118483)

For converting large ints to strings, CPython invokes a function in _pylong.py,
which uses the decimal module to implement an asymptotically waaaaay
sub-quadratic algorithm. But if the C decimal module isn't available, CPython
uses _pydecimal.py instead. Which in turn frequently does str(int). If the int
is very large, _pylong ends up doing the work, which in turn asks decimal to do
"big" arithmetic, which in turn calls str(big_int), which in turn ... it can
become infinite mutual recursion.

This change introduces a different int->str function that doesn't use decimal.
It's asymptotically worse, "Karatsuba time" instead of quadratic time, so
still a huge improvement. _pylong switches to that when the C decimal isn't
available. It is also used for not too large integers (less than 450_000 bits),
where it is faster (up to 2 times for 30_000 bits) than the asymptotically
better implementation that uses the C decimal.

Co-authored-by: Tim Peters <tim.peters@gmail.com>
24 hours agogh-74929: Remove undesirable DECREF in PEP 667 implementation (#118583)
Tian Gao [Sun, 5 May 2024 03:06:42 +0000 (20:06 -0700)] 
gh-74929: Remove undesirable DECREF in PEP 667 implementation (#118583)

With tests.

26 hours agogh-118518: Allow perf to work without frame pointers (#112254)
Pablo Galindo Salgado [Sun, 5 May 2024 01:07:29 +0000 (03:07 +0200)] 
gh-118518: Allow perf to work without frame pointers (#112254)

28 hours agogh-118164: str(10**10000) hangs if the C _decimal module is missing (#118503)
Tim Peters [Sat, 4 May 2024 23:22:33 +0000 (18:22 -0500)] 
gh-118164: str(10**10000) hangs if the C _decimal module is missing (#118503)

* Initial stab.

* Test the tentative fix. Hangs "forever" without this change.

* Move the new test to a better spot.

* New comment to explain why _convert_to_str allows any poewr of 10.

* Fixed a comment, and fleshed out an existing test that appeared unfinished.

* Added temporary asserts. Or maybe permanent ;-)

* Update Lib/_pydecimal.py

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* Remove the new _convert_to_str().

Serhiy and I independently concluded that exact powers of 10
aren't possible in these contexts, so just checking the
string length is sufficient.

* At least for now, add the asserts to the other block too.

* 📜🤖 Added by blurb_it.

---------

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
29 hours agogh-109617: fix ncurses incompatibility on macOS with Xcode 15 (#111258)
Davide Rizzo [Sat, 4 May 2024 21:41:47 +0000 (23:41 +0200)] 
gh-109617: fix ncurses incompatibility on macOS with Xcode 15 (#111258)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
30 hours agogh-117953: Track Extra Details in Global Extensions Cache (gh-118532)
Eric Snow [Sat, 4 May 2024 21:24:02 +0000 (15:24 -0600)] 
gh-117953: Track Extra Details in Global Extensions Cache (gh-118532)

We have only been tracking each module's PyModuleDef.  However, there are some problems with that.  For example, in some cases we load single-phase init extension modules from def->m_base.m_init or def->m_base.m_copy, but if multiple modules share a def then we can end up with unexpected behavior.

With this change, we track the following:

* PyModuleDef (same as before)
* for some modules, its init function or a copy of its __dict__, but specific to that module
* whether it is a builtin/core module or a "dynamic" extension
* the interpreter (ID) that owns the cached __dict__ (only if cached)

This also makes it easier to remember the module's kind (e.g. single-phase init) and if loading it previously failed, which I'm doing separately.

35 hours agogh-117139: Fix missing semicolon (GH-118573)
Ken Jin [Sat, 4 May 2024 15:45:49 +0000 (23:45 +0800)] 
gh-117139: Fix missing semicolon (GH-118573)

36 hours agogh-118569: Add a test for dynamic PEP695 classes (#118570)
Nikita Sobolev [Sat, 4 May 2024 15:08:38 +0000 (18:08 +0300)] 
gh-118569: Add a test for dynamic PEP695 classes (#118570)

36 hours agoGH-111744: Support opcode events in bdb (GH-111834)
Tian Gao [Sat, 4 May 2024 14:44:49 +0000 (07:44 -0700)] 
GH-111744: Support opcode events in bdb (GH-111834)

37 hours agobuild(deps): bump hypothesis from 6.100.0 to 6.100.2 in /Tools (#118462)
dependabot[bot] [Sat, 4 May 2024 13:47:48 +0000 (14:47 +0100)] 
build(deps): bump hypothesis from 6.100.0 to 6.100.2 in /Tools (#118462)

Bumps [hypothesis](https://github.com/HypothesisWorks/hypothesis) from 6.100.0 to 6.100.2.
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.100.0...hypothesis-python-6.100.2)

37 hours agofix comment typo in importlib (#118567)
wim glenn [Sat, 4 May 2024 13:46:32 +0000 (08:46 -0500)] 
fix comment typo in importlib (#118567)

40 hours agogh-74929: Implement PEP 667 (GH-115153)
Tian Gao [Sat, 4 May 2024 11:12:10 +0000 (04:12 -0700)] 
gh-74929: Implement PEP 667 (GH-115153)

40 hours agoGH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support...
Mark Shannon [Sat, 4 May 2024 11:11:11 +0000 (12:11 +0100)] 
GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322)

* Add CALL_PY_GENERAL, CALL_BOUND_METHOD_GENERAL and call CALL_NON_PY_GENERAL specializations.

* Remove CALL_PY_WITH_DEFAULTS specialization

* Use CALL_NON_PY_GENERAL in more cases when otherwise failing to specialize

41 hours agogh-113081: Print colorized exception just like built-in traceback in pdb (#113082)
Tian Gao [Sat, 4 May 2024 10:26:40 +0000 (03:26 -0700)] 
gh-113081: Print colorized exception just like built-in traceback in pdb (#113082)

43 hours agogh-111997: C-API for signalling monitoring events (#116413)
Irit Katriel [Sat, 4 May 2024 08:23:50 +0000 (09:23 +0100)] 
gh-111997: C-API for signalling monitoring events (#116413)

43 hours agoGH-113464: Remove the extra jump via `_SIDE_EXIT` in `_EXIT_TRACE` (GH-118545)
Mark Shannon [Sat, 4 May 2024 07:50:24 +0000 (08:50 +0100)] 
GH-113464: Remove the extra jump via `_SIDE_EXIT` in `_EXIT_TRACE` (GH-118545)

43 hours agogh-110850: Use _PyDeadline_Get() in EnterNonRecursiveMutex() (#118556)
Victor Stinner [Sat, 4 May 2024 07:39:58 +0000 (09:39 +0200)] 
gh-110850: Use _PyDeadline_Get() in EnterNonRecursiveMutex() (#118556)

Use _PyDeadline_Init() and _PyDeadline_Get() in
EnterNonRecursiveMutex() of thread_nt.h.

_PyDeadline_Get() uses the monotonic clock which is now the same as
the perf counter clock on all platforms. So this change does not
cause any behavior change. It just reuses existing helper functions.

47 hours agogh-115532 Add kde_random() to the statistic module (#118210)
Raymond Hettinger [Sat, 4 May 2024 04:13:36 +0000 (23:13 -0500)] 
gh-115532 Add kde_random() to the statistic module (#118210)

2 days agoGH-113464: Generate a more efficient JIT (GH-118512)
Brandt Bucher [Fri, 3 May 2024 23:41:07 +0000 (16:41 -0700)] 
GH-113464: Generate a more efficient JIT (GH-118512)

2 days agoGH-118251: Fix incomplete ternary expression in JIT workflow (GH-118564)
Brandt Bucher [Fri, 3 May 2024 23:10:02 +0000 (16:10 -0700)] 
GH-118251: Fix incomplete ternary expression in JIT workflow (GH-118564)

2 days agogh-118527: Intern filename, name, and qualname in code objects. (#118558)
Sam Gross [Fri, 3 May 2024 22:16:45 +0000 (18:16 -0400)] 
gh-118527: Intern filename, name, and qualname in code objects. (#118558)

This interns the strings for `co_filename`, `co_name`, and `co_qualname`
on codeobjects in the free-threaded build. This partially addresses a
reference counting bottleneck when creating closures concurrently. The
closures take the name and qualified name from the code object.

2 days agogh-118534: Fix load of `gil->locked` (#118553)
Sam Gross [Fri, 3 May 2024 22:13:40 +0000 (18:13 -0400)] 
gh-118534: Fix load of `gil->locked` (#118553)

2 days agoMinor improvements to the itertools recipes (#118563)
Raymond Hettinger [Fri, 3 May 2024 22:07:47 +0000 (17:07 -0500)] 
Minor improvements to the itertools recipes (#118563)

2 days agoGH-116380: Move pathlib globbing implementation into `pathlib._glob` (#118562)
Barney Gale [Fri, 3 May 2024 20:29:25 +0000 (21:29 +0100)] 
GH-116380: Move pathlib globbing implementation into `pathlib._glob` (#118562)

Moving this code under the `pathlib` package makes it quite a lot easier
to backport in the `pathlib-abc` PyPI package. It was a bit foolish of me
to add it to `glob` in the first place.

Also add `translate()` to `__all__` in `glob`. This function is new in
3.13, so there's no NEWS needed.

2 days agogh-117657: Disable the function/code cache in free-threaded builds (#118301)
mpage [Fri, 3 May 2024 20:21:04 +0000 (13:21 -0700)] 
gh-117657: Disable the function/code cache in free-threaded builds (#118301)

This is only used by the specializing interpreter and the tier 2
optimizer, both of which are disabled in free-threaded builds.

2 days agoGH-118251: Skip fewer test in emulated JIT CI (GH-118536)
Savannah Ostrowski [Fri, 3 May 2024 19:07:10 +0000 (12:07 -0700)] 
GH-118251: Skip fewer test in emulated JIT CI (GH-118536)

2 days agogh-107674: Improve performance of `sys.settrace` (GH-117133)
Tian Gao [Fri, 3 May 2024 18:49:24 +0000 (11:49 -0700)] 
gh-107674: Improve performance of `sys.settrace` (GH-117133)

* Check tracing in RESUME_CHECK

* Only change to RESUME_CHECK if not tracing

2 days agogh-83856: Honor atexit for all multiprocessing start methods (GH-114279)
Tian Gao [Fri, 3 May 2024 18:45:46 +0000 (11:45 -0700)] 
gh-83856: Honor atexit for all multiprocessing start methods (GH-114279)

Use atexit for all multiprocessing start methods to cleanup.
See the GH-114279 PR discussion and related issue for details as to why.

2 days agoGH-118487: Add Black to `.pre-commit-config.yaml` for JIT files (GH-118537)
Savannah Ostrowski [Fri, 3 May 2024 17:49:51 +0000 (10:49 -0700)] 
GH-118487: Add Black to `.pre-commit-config.yaml` for JIT files (GH-118537)

2 days agogh-115119: Update macOS installer to build with libmpdec 4.0.0 (GH-118382)
Erlend E. Aasland [Fri, 3 May 2024 16:49:40 +0000 (18:49 +0200)] 
gh-115119: Update macOS installer to build with libmpdec 4.0.0 (GH-118382)

Co-authored-by: Ned Deily <nad@python.org>
2 days agogh-115119: Update Windows installer to mpdecimal 4.0.0 (#118506)
Erlend E. Aasland [Fri, 3 May 2024 16:00:43 +0000 (18:00 +0200)] 
gh-115119: Update Windows installer to mpdecimal 4.0.0 (#118506)

2 days agodocs: clarify csv.DictReader's treatment of the first data row (#118549)
Ned Batchelder [Fri, 3 May 2024 15:48:27 +0000 (11:48 -0400)] 
docs: clarify csv.DictReader's treatment of the first data row (#118549)

2 days agogh-118527: Use deferred reference counting for C functions on modules (#118529)
Sam Gross [Fri, 3 May 2024 15:33:05 +0000 (11:33 -0400)] 
gh-118527: Use deferred reference counting for C functions on modules (#118529)

This addresses a scaling bottleneck in the free-threaded build when
calling functions like `math.floor()` concurrently from multiple
threads.

2 days agogh-116322: Add Py_mod_gil module slot (#116882)
Brett Simmers [Fri, 3 May 2024 15:30:55 +0000 (08:30 -0700)] 
gh-116322: Add Py_mod_gil module slot (#116882)

This PR adds the ability to enable the GIL if it was disabled at
interpreter startup, and modifies the multi-phase module initialization
path to enable the GIL when loading a module, unless that module's spec
includes a slot indicating it can run safely without the GIL.

PEP 703 called the constant for the slot `Py_mod_gil_not_used`; I went
with `Py_MOD_GIL_NOT_USED` for consistency with gh-104148.

A warning will be issued up to once per interpreter for the first
GIL-using module that is loaded. If `-v` is given, a shorter message
will be printed to stderr every time a GIL-using module is loaded
(including the first one that issues a warning).

2 days agogh-118495: Skip test using threads after forking when running with TSAN (#118530)
mpage [Fri, 3 May 2024 15:14:26 +0000 (08:14 -0700)] 
gh-118495: Skip test using threads after forking when running with TSAN (#118530)

This is unsupported. Note that `skip_unless_reliable_fork()` checks for
the conditions used by the decorators that were removed, along with checking
for TSAN.

2 days agogh-117514: Add `sys._is_gil_enabled()` function (#118514)
Sam Gross [Fri, 3 May 2024 15:09:57 +0000 (11:09 -0400)] 
gh-117514: Add `sys._is_gil_enabled()` function (#118514)

The function returns `True` or `False` depending on whether the GIL is
currently enabled. In the default build, it always returns `True`
because the GIL is always enabled.

2 days agogh-118527: Use `_Py_ID(__main__)` for main module name (#118528)
Sam Gross [Fri, 3 May 2024 15:05:30 +0000 (11:05 -0400)] 
gh-118527: Use `_Py_ID(__main__)` for main module name (#118528)

Most module names are interned and immortalized, but the main
module was not. This partially addresses a scaling bottleneck in the
free-threaded when creating closure concurrently in the main module.

2 days agogh-118513: Fix sibling comprehensions with a name bound in one and global in the...
Carl Meyer [Fri, 3 May 2024 14:05:19 +0000 (08:05 -0600)] 
gh-118513: Fix sibling comprehensions with a name bound in one and global in the other (#118526)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
2 days agogh-101732: Modules/_ssl.c: use Y2038 compatible openssl function when available ...
Alexander Kanavin [Fri, 3 May 2024 13:34:05 +0000 (15:34 +0200)] 
gh-101732: Modules/_ssl.c: use Y2038 compatible openssl function when available (GH-118425)

2 days agogh-116126: Implement PEP 696 (#116129)
Jelle Zijlstra [Fri, 3 May 2024 13:17:32 +0000 (06:17 -0700)] 
gh-116126: Implement PEP 696 (#116129)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2 days agogh-117492: Clarify documentation of `typing.Never` (#117678)
Nice Zombies [Fri, 3 May 2024 13:02:11 +0000 (15:02 +0200)] 
gh-117492: Clarify documentation of `typing.Never` (#117678)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
3 days agogh-117953: Other Cleanups in the Extensions Machinery (gh-118206)
Eric Snow [Fri, 3 May 2024 00:51:43 +0000 (18:51 -0600)] 
gh-117953: Other Cleanups in the Extensions Machinery (gh-118206)

This change will make some later changes simpler.

3 days agogh-116738: Make `_codecs` module thread-safe (#117530)
Brett Simmers [Thu, 2 May 2024 22:25:36 +0000 (15:25 -0700)] 
gh-116738: Make `_codecs` module thread-safe (#117530)

The module itself is a thin wrapper around calls to functions in
`Python/codecs.c`, so that's where the meaningful changes happened:

- Move codecs-related state that lives on `PyInterpreterState` to a
  struct declared in `pycore_codecs.h`.

- In free-threaded builds, add a mutex to `codecs_state` to synchronize
  operations on `search_path`. Because `search_path_mutex` is used as a
  normal mutex and not a critical section, we must be extremely careful
  with operations called while holding it.

- The codec registry is explicitly initialized as part of
  `_PyUnicode_InitEncodings` to simplify thread-safety.

3 days agogh-118500: Add pdb support for zipapp (#118501)
Tian Gao [Thu, 2 May 2024 20:53:27 +0000 (13:53 -0700)] 
gh-118500: Add pdb support for zipapp (#118501)

3 days agogh-118519: Fix empty weakref list check (#118520)
Dino Viehland [Thu, 2 May 2024 20:03:29 +0000 (13:03 -0700)] 
gh-118519: Fix empty weakref list check (#118520)

Fix empty list check

3 days agogh-117657: Fix TSAN list set failure (#118260)
Dino Viehland [Thu, 2 May 2024 20:03:05 +0000 (13:03 -0700)] 
gh-117657: Fix TSAN list set failure (#118260)

* Fix TSAN list set failure

* Relaxed atomic is sufficient, add targetted test

* More list

* Remove atomic assign in list

* Fixup white space

3 days agogh-118486: Switch mkdir(mode=0o700) on Windows to use OWNER RIGHTS instead of CURRENT...
Steve Dower [Thu, 2 May 2024 18:43:54 +0000 (19:43 +0100)] 
gh-118486: Switch mkdir(mode=0o700) on Windows to use OWNER RIGHTS instead of CURRENT_USER (GH-118515)

3 days agoRemove stray `__cplusplus` guard in sysmodule.c (#118511)
Sam Gross [Thu, 2 May 2024 17:51:28 +0000 (13:51 -0400)] 
Remove stray `__cplusplus` guard in sysmodule.c (#118511)

3 days agogh-118413: Fix test_release_task_refs on free-threaded build (#118494)
Sam Gross [Thu, 2 May 2024 17:41:15 +0000 (13:41 -0400)] 
gh-118413: Fix test_release_task_refs on free-threaded build (#118494)

The `time.sleep()` call should happen before the GC to give the worker
threads time to clean-up their remaining references to objs.
Additionally, use `support.gc_collect()` instead of `gc.collect()`
just in case the extra GC calls matter.

3 days agogh-90848: Fixed create_autospec ignoring configure_mock style kwargs (#118163)
infohash [Thu, 2 May 2024 17:36:35 +0000 (23:06 +0530)] 
gh-90848: Fixed create_autospec ignoring configure_mock style kwargs (#118163)

3 days agogh-93502: Add new C-API functions to trace object creation and destruction (#115945)
Pablo Galindo Salgado [Thu, 2 May 2024 17:30:00 +0000 (19:30 +0200)] 
gh-93502: Add new C-API functions to trace object creation and destruction (#115945)

3 days agogh-105879: Add support for keyword arguments to eval and exec (#105885)
Raphael Gaschignard [Thu, 2 May 2024 15:55:29 +0000 (01:55 +1000)] 
gh-105879: Add support for keyword arguments to eval and exec (#105885)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
3 days agoGH-118095: Unify the behavior of tier 2 FOR_ITER branch micro-ops (GH-118420)
Mark Shannon [Thu, 2 May 2024 15:17:59 +0000 (16:17 +0100)] 
GH-118095: Unify the behavior of tier 2 FOR_ITER branch micro-ops (GH-118420)

* Target _FOR_ITER_TIER_TWO at POP_TOP following the matching END_FOR

* Modify _GUARD_NOT_EXHAUSTED_RANGE, _GUARD_NOT_EXHAUSTED_LIST and _GUARD_NOT_EXHAUSTED_TUPLE so that they also target the POP_TOP following the matching END_FOR

3 days agogh-82062: Fix support of parameter defaults on methods in extension modules (GH-115270)
Sergey B Kirpichev [Thu, 2 May 2024 14:44:33 +0000 (17:44 +0300)] 
gh-82062: Fix support of parameter defaults on methods in extension modules (GH-115270)

Now inspect.signature() supports references to the module globals in
parameter defaults on methods in extension modules.  Previously it was
only supported in functions.  The workaround was to specify the fully
qualified name, including the module name.

3 days agogh-118486: Support mkdir(mode=0o700) on Windows (GH-118488)
Steve Dower [Thu, 2 May 2024 14:20:43 +0000 (15:20 +0100)] 
gh-118486: Support mkdir(mode=0o700) on Windows (GH-118488)

3 days agogh-117903: Clarify that the staticmethod descriptor is callable (GH-117925)
Serhiy Storchaka [Thu, 2 May 2024 13:56:33 +0000 (16:56 +0300)] 
gh-117903: Clarify that the staticmethod descriptor is callable (GH-117925)

3 days agogh-116180: Check the globals argument in PyRun_* C API (GH-116637)
NGRsoftlab [Thu, 2 May 2024 13:43:03 +0000 (16:43 +0300)] 
gh-116180: Check the globals argument in PyRun_* C API (GH-116637)

It used to crash when passing NULL or non-dict as globals.
Now it sets a SystemError.

3 days agogh-118216: Don't consider dotted `__future__` imports (#118267)
Crowthebird [Thu, 2 May 2024 13:32:20 +0000 (21:32 +0800)] 
gh-118216: Don't consider dotted `__future__` imports (#118267)

3 days agoGH-117442: Check eval-breaker at start (rather than end) of tier 2 loops (GH-118482)
Mark Shannon [Thu, 2 May 2024 12:10:31 +0000 (13:10 +0100)] 
GH-117442: Check eval-breaker at start (rather than end) of tier 2 loops (GH-118482)

3 days agogdb/libpython.py: Update PyLongObjectPtr docstring (GH-118438)
Andrej [Thu, 2 May 2024 08:57:45 +0000 (13:57 +0500)] 
gdb/libpython.py: Update PyLongObjectPtr docstring (GH-118438)

3 days agodocs: typo: tiny grammar change: "pointed by" -> "pointed to by" (#118411)
Andrew Zipperer [Thu, 2 May 2024 05:37:12 +0000 (00:37 -0500)] 
docs: typo: tiny grammar change: "pointed by" -> "pointed to by" (#118411)

* docs: tiny grammar change: "pointed by" -> "pointed to by"

This commit uses "file pointed to by" to replace "file pointed by" in
 - doc for shutil.copytree
 - docstring for shutil.copytree
 - docstring _abc.PathBase.open
 - docstring for pathlib.Path.open
 - doc for os.copy_file_range
 - doc for os.splice

The docs use "file pointed to by" more frequently than
"file pointed by". So, this commit replaces the uses of
"file pointed by" in order to make the uses consistent
through the docs.

```bash
$ grep -ri 'pointed to by' cpython/
```
yields more results than
```bash
$ grep -ri 'pointed by' cpython/
```

Separately:

There are two occurrences of "tree pointed by":
 - cpython/Doc/library/xml.etree.elementtree.rst for
     `xml.etree.ElementInclude.include`
 - cpython/Lib/xml/etree/ElementInclude.py for `include`

For those uses of "tree pointed by", I expect "tree pointed to by"
instead. However, I found enough uses online of (a) "tree pointed by"
rather than (b) "tree pointed to by" to convince me that (a) is in
common use.

So, this commit does not replace those occurrences of "tree pointed by"
to "tree pointed to by". But I will replace them if a reviewer
believes it is correct to replace them.

* docs: typo: "exists and executable" -> "exists and is executable"

---------

Co-authored-by: Andrew-Zipperer <atzipperer@gmail.com>
4 days agogh-118335: Rename --experimental-interpreter on Windows to --experimental-jit-interpr...
Guido van Rossum [Thu, 2 May 2024 00:48:34 +0000 (17:48 -0700)] 
gh-118335: Rename --experimental-interpreter on Windows to --experimental-jit-interpreter (#118497)

Also fix docs for this in whatsnew.

4 days agogh-117953: Work Relative to Specific Extension Kinds in the Import Machinery (gh...
Eric Snow [Wed, 1 May 2024 23:40:28 +0000 (17:40 -0600)] 
gh-117953: Work Relative to Specific Extension Kinds in the Import Machinery (gh-118205)

This change will make some later changes simpler.

4 days agogh-118335: Make REGEN_JIT_COMMAND empty if tier2 interpreter enabled (#118493)
Guido van Rossum [Wed, 1 May 2024 23:36:29 +0000 (16:36 -0700)] 
gh-118335: Make REGEN_JIT_COMMAND empty if tier2 interpreter enabled (#118493)

Also patch up news blurb for gh-118339
(add warning that PYTHON_UOPS is now PYTHON_JIT).

4 days agoGH-118174: specify the type for the path argument of shutil.which
Filipe Laíns [Wed, 1 May 2024 23:13:32 +0000 (00:13 +0100)] 
GH-118174: specify the type for the path argument of shutil.which

4 days agogh-118413: Temporarily skip `test_release_task_refs` in free-threaded builds (#118491)
Sam Gross [Wed, 1 May 2024 21:58:22 +0000 (17:58 -0400)] 
gh-118413: Temporarily skip `test_release_task_refs` in free-threaded builds (#118491)

4 days agogh-117607: Speedup os.path.relpath() (GH-117608)
Nice Zombies [Wed, 1 May 2024 21:44:55 +0000 (23:44 +0200)] 
gh-117607: Speedup os.path.relpath() (GH-117608)

4 days agoGH-113464: Display a warning when building the JIT (GH-118481)
Brandt Bucher [Wed, 1 May 2024 21:35:49 +0000 (14:35 -0700)] 
GH-113464: Display a warning when building the JIT (GH-118481)

4 days agoGH-118095: Make sure that progress is made if there are pending calls being handled...
Mark Shannon [Wed, 1 May 2024 21:18:31 +0000 (22:18 +0100)] 
GH-118095: Make sure that progress is made if there are pending calls being handled. (GH-118484)

4 days agogh-118433: Temporarily skip `test_interrupt_main_subthread` in free-threaded builds...
mpage [Wed, 1 May 2024 20:59:12 +0000 (13:59 -0700)] 
gh-118433: Temporarily skip `test_interrupt_main_subthread` in free-threaded builds (#118485)

Free-threaded builds can intermittently tickle a longstanding bug (24 years!)
in the implementation of `threading.Condition`, leading to flakiness in the
test suite. Fixing the underlying issue will require more discussion, and will
likely apply to most of the concurrency primitives in the `threading` module
that are written in Python. See gh-118433 for more details.

4 days agogh-118272: set stacktop to 0 before freeing contents, to avoid access to invalid...
Irit Katriel [Wed, 1 May 2024 20:51:40 +0000 (21:51 +0100)] 
gh-118272: set stacktop to 0 before freeing contents, to avoid access to invalid objects during GC (#118478)

4 days agobuild(deps-dev): bump types-psutil from 5.9.5.20240316 to 5.9.5.20240423 in /Tools...
dependabot[bot] [Wed, 1 May 2024 19:15:30 +0000 (19:15 +0000)] 
build(deps-dev): bump types-psutil from 5.9.5.20240316 to 5.9.5.20240423 in /Tools (#118464)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4 days agogh-117225: Move colorize functionality to own internal module (#118283)
Hugo van Kemenade [Wed, 1 May 2024 18:27:06 +0000 (21:27 +0300)] 
gh-117225: Move colorize functionality to own internal module (#118283)

4 days agogh-117225: Document colour use in `doctest` (#118268)
Hugo van Kemenade [Wed, 1 May 2024 18:25:11 +0000 (21:25 +0300)] 
gh-117225: Document colour use in `doctest` (#118268)

4 days agogh-110850: Add PyTime_TimeRaw() function (#118394)
Victor Stinner [Wed, 1 May 2024 18:05:01 +0000 (20:05 +0200)] 
gh-110850: Add PyTime_TimeRaw() function (#118394)

Add "Raw" variant of PyTime functions:

* PyTime_MonotonicRaw()
* PyTime_PerfCounterRaw()
* PyTime_TimeRaw()

Changes:

* Add documentation and tests. Tests release the GIL while calling
  raw clock functions.
* py_get_system_clock() and py_get_monotonic_clock() now check that
  the GIL is hold by the caller if raise_exc is non-zero.
* Reimplement "Unchecked" functions with raw clock functions.

Co-authored-by: Petr Viktorin <encukou@gmail.com>
4 days agoExpand the 'Extending' docs with an example. (#113187)
Jason R. Coombs [Wed, 1 May 2024 17:04:02 +0000 (13:04 -0400)] 
Expand the 'Extending' docs with an example. (#113187)

* Expand the 'Extending' docs to provide a minimal example. Closes python/importlib_metadata#427.

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
4 days agogh-116622: Android sysconfig updates (#118352)
Malcolm Smith [Wed, 1 May 2024 16:47:54 +0000 (17:47 +0100)] 
gh-116622: Android sysconfig updates (#118352)

4 days agoBump types-setuptools from 69.2.0.20240317 to 69.5.0.20240423 in /Tools (#118463)
dependabot[bot] [Wed, 1 May 2024 16:07:29 +0000 (17:07 +0100)] 
Bump types-setuptools from 69.2.0.20240317 to 69.5.0.20240423 in /Tools (#118463)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4 days agoBump mypy from 1.9.0 to 1.10.0 in /Tools (#118461)
dependabot[bot] [Wed, 1 May 2024 16:06:54 +0000 (17:06 +0100)] 
Bump mypy from 1.9.0 to 1.10.0 in /Tools (#118461)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4 days agogh-99730: urllib.request: Keep HEAD method on redirect (GH-99731)
Harmen Stoppels [Wed, 1 May 2024 16:01:47 +0000 (18:01 +0200)] 
gh-99730: urllib.request: Keep HEAD method on redirect (GH-99731)

4 days agoGH-115802: Use the GHC calling convention in JIT code (GH-118287)
Brandt Bucher [Wed, 1 May 2024 15:05:53 +0000 (08:05 -0700)] 
GH-115802: Use the GHC calling convention in JIT code (GH-118287)