]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
23 months agoGH-111963: Clarify sys.monitoring.free_tool_id's limitations (GH-112291)
Tian Gao [Tue, 21 Nov 2023 22:58:30 +0000 (14:58 -0800)] 
GH-111963: Clarify sys.monitoring.free_tool_id's limitations (GH-112291)

23 months agogh-110745: add a newline argument to pathlib.Path.read_text (#110880)
Junya Okabe [Tue, 21 Nov 2023 22:32:38 +0000 (07:32 +0900)] 
gh-110745: add a newline argument to pathlib.Path.read_text (#110880)

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Barney Gale <barney.gale@gmail.com>
23 months agogh-111361: Added an update for unicodedata in what's new in Python 3.13 (#112031)
Lincoln [Tue, 21 Nov 2023 18:46:26 +0000 (21:46 +0300)] 
gh-111361: Added an update for unicodedata in what's new in Python 3.13 (#112031)

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
23 months agogh-111863: Rename blurb snippet placed in the wrong directory by accident. (#112300)
T. Wouters [Tue, 21 Nov 2023 17:37:03 +0000 (18:37 +0100)] 
gh-111863: Rename blurb snippet placed in the wrong directory by accident. (#112300)

Rename blurb snippet placed in the wrong directory by accident.

23 months agogh-112252: Fix error on unset $OSNAME in venv/activate (GH-112253)
James Turk [Tue, 21 Nov 2023 15:18:53 +0000 (09:18 -0600)] 
gh-112252: Fix error on unset $OSNAME in venv/activate (GH-112253)

23 months agogh-57879: Increase test coverage for pstats.py (gh-111447)
Liu, An-Chi [Tue, 21 Nov 2023 13:32:09 +0000 (22:32 +0900)] 
gh-57879: Increase test coverage for pstats.py (gh-111447)

23 months agogh-110950: add upstream Tk fixes to macOS installer. (GH-111041)
Christopher Chavez [Tue, 21 Nov 2023 08:12:19 +0000 (02:12 -0600)] 
gh-110950: add upstream Tk fixes to macOS installer. (GH-111041)

Add upstream Tk patches for three problems affecting tkinter users:

- Update macOS installer to include a fix accepted by upstream Tcl/Tk
for a crash encountered after the first :meth:`tkinter.Tk` instance
is destroyed. (gh-92603)

- Update macOS installer to include an upstream Tcl/Tk fix
for the ``ttk::ThemeChanged`` error encountered in Tkinter. (gh-71383)

- Update macOS installer to include an upstream Tcl/Tk fix for the
``Secure coding is not enabled for restorable state!`` warning
encountered in Tkinter on macOS 14 Sonoma. (gh-110950)

Co-authored-by: Ned Deily <nad@python.org>
23 months agogh-59703: use the system dladdr function in getpath.c for macOS framework builds...
AN Long [Tue, 21 Nov 2023 05:15:25 +0000 (13:15 +0800)] 
gh-59703: use the system dladdr function in getpath.c for macOS framework builds (GH-111546)

Co-authored-by: Ned Deily <nad@python.org>
23 months agogh-111786: Use separate opcode vars for Tier 1 and Tier 2 (#112289)
Michael Droettboom [Mon, 20 Nov 2023 23:13:44 +0000 (18:13 -0500)] 
gh-111786: Use separate opcode vars for Tier 1 and Tier 2 (#112289)

This makes Windows about 3% faster on pyperformance benchmarks.

23 months agogh-112287: Speed up Tier 2 (uop) interpreter a little (#112286)
Guido van Rossum [Mon, 20 Nov 2023 19:25:32 +0000 (11:25 -0800)] 
gh-112287: Speed up Tier 2 (uop) interpreter a little (#112286)

This makes the Tier 2 interpreter a little faster.
I calculated by about 3%,
though I hesitate to claim an exact number.

This starts by doubling the trace size limit (to 512),
making it more likely that loops fit in a trace.

The rest of the approach is to only load
`oparg` and `operand` in cases that use them.
The code generator know when these are used.

For `oparg`, it will conditionally emit
```
oparg = CURRENT_OPARG();
```
at the top of the case block.
(The `oparg` variable may be referenced multiple times
by the instructions code block, so it must be in a variable.)

For `operand`, it will use `CURRENT_OPERAND()` directly
instead of referencing the `operand` variable,
which no longer exists.
(There is only one place where this will be used.)

23 months agogh-111848: Clean up RESERVE() macro (#112274)
Guido van Rossum [Mon, 20 Nov 2023 18:45:42 +0000 (10:45 -0800)] 
gh-111848: Clean up RESERVE() macro (#112274)

Also avoid compiler warnings about unused 'reserved' variable.

23 months agogh-106529: Make FOR_ITER a viable uop (#112134)
Guido van Rossum [Mon, 20 Nov 2023 18:08:53 +0000 (10:08 -0800)] 
gh-106529: Make FOR_ITER a viable uop (#112134)

This uses the new mechanism whereby certain uops
are replaced by others during translation,
using the `_PyUop_Replacements` table.
We further special-case the `_FOR_ITER_TIER_TWO` uop
to update the deoptimization target to point
just past the corresponding `END_FOR` opcode.

Two tiny code cleanups are also part of this PR.

23 months agogh-112243: Don't include comments in f-string debug expressions (#112284)
Pablo Galindo Salgado [Mon, 20 Nov 2023 15:18:24 +0000 (15:18 +0000)] 
gh-112243: Don't include comments in f-string debug expressions (#112284)

23 months agogh-111863: Rename `Py_NOGIL` to `Py_GIL_DISABLED` (#111864)
Hugo van Kemenade [Mon, 20 Nov 2023 13:52:00 +0000 (15:52 +0200)] 
gh-111863: Rename `Py_NOGIL` to `Py_GIL_DISABLED` (#111864)

Rename Py_NOGIL to Py_GIL_DISABLED

23 months agobpo-45759: Better error messages for non-matching 'elif'/'else' statements (#29513)
Crowthebird [Mon, 20 Nov 2023 13:27:53 +0000 (21:27 +0800)] 
bpo-45759: Better error messages for non-matching 'elif'/'else' statements (#29513)

23 months agoGH-111807: Lower the parser stack depth under WASI debug builds (#112225)
Brett Cannon [Mon, 20 Nov 2023 13:27:33 +0000 (05:27 -0800)] 
GH-111807: Lower the parser stack depth under WASI debug builds (#112225)

23 months agogh-73561: Omit interface scope from IPv6 when used as Host header (#93324)
Michael [Sun, 19 Nov 2023 22:37:13 +0000 (23:37 +0100)] 
gh-73561: Omit interface scope from IPv6 when used as Host header (#93324)

Omit the `@interface_scope` from an IPv6 address when used as Host header by `http.client`.

---------

Co-authored-by: Gregory P. Smith <greg@krypto.org> [Google LLC]
23 months agogh-111926: Update _PyWeakref_IS_DEAD to be thread-safe (gh-112267)
Donghee Na [Sun, 19 Nov 2023 22:36:45 +0000 (22:36 +0000)] 
gh-111926: Update _PyWeakref_IS_DEAD to be thread-safe (gh-112267)

23 months agogh-112266: Remove `(if defined)` part from `__dict__` and `__weakref__` docstrings...
Nikita Sobolev [Sun, 19 Nov 2023 18:30:07 +0000 (21:30 +0300)] 
gh-112266: Remove `(if defined)` part from `__dict__` and `__weakref__` docstrings (#112268)

23 months agogh-111965: Using critical sections to make ``io.StringIO`` thread safe. (gh-112116)
AN Long [Sun, 19 Nov 2023 12:34:40 +0000 (20:34 +0800)] 
gh-111965: Using critical sections to make ``io.StringIO`` thread safe. (gh-112116)

23 months agogh-110383: Explained which error message is generated when there is an unhandled...
Unique-Usman [Sun, 19 Nov 2023 12:20:10 +0000 (17:50 +0530)] 
gh-110383: Explained which error message is generated when there is an unhandled exception (#111574)

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
23 months agogh-110383: Fix documentation profile cumtime fix (#112221)
Alex Ptakhin [Sun, 19 Nov 2023 09:56:54 +0000 (10:56 +0100)] 
gh-110383: Fix documentation profile cumtime fix (#112221)

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
23 months agoIDLE: Fix test_debugger bug and buildbot failures (#112258)
Terry Jan Reedy [Sun, 19 Nov 2023 06:39:26 +0000 (01:39 -0500)] 
IDLE: Fix test_debugger bug and buildbot failures (#112258)

Missing "requires('gui')" causes Tk() to fail when no gui.
This caused CI Hypothesis test to fail, but I did not understand
the its error message. Then buildbots failed.

IdbTest failed on draft Bdb replacement because so different.
Simplified version works on old and new.

23 months agogh-79871: IDLE - Fix and test debugger module (#11451)
Anthony Shaw [Sun, 19 Nov 2023 04:20:38 +0000 (15:20 +1100)] 
gh-79871: IDLE - Fix and test debugger module (#11451)

Add docstrings to the debugger module. Fix two bugs: initialize Idb.botframe (should be in Bdb); In Idb.in_rpc_code, check whether prev_frame is None before trying to use it. Make other code changes.

Expand test_debugger coverage from 19% to 66%.
---------
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
23 months agogh-112186: Improve test case `test_loop_is_closed_resource_warnings` (#112187)
DPR [Sun, 19 Nov 2023 03:21:34 +0000 (11:21 +0800)] 
gh-112186: Improve test case `test_loop_is_closed_resource_warnings` (#112187)

23 months agogh-112213: Update _weakref module to use new AC feature (gh-112250)
Donghee Na [Sun, 19 Nov 2023 01:43:51 +0000 (01:43 +0000)] 
gh-112213: Update _weakref module to use new AC feature (gh-112250)

23 months agogh-111903: Update AC to support "pycore_critical_section.h" header (gh-112251)
Donghee Na [Sun, 19 Nov 2023 01:13:58 +0000 (01:13 +0000)] 
gh-111903: Update AC to support "pycore_critical_section.h" header (gh-112251)

23 months agogh-111965: Use critical sections to make io.TextIOWrapper thread safe (gh-112193)
AN Long [Sat, 18 Nov 2023 23:21:04 +0000 (07:21 +0800)] 
gh-111965: Use critical sections to make io.TextIOWrapper thread safe (gh-112193)

23 months agogh-112213: Add @critical_section target directive to Argument Clinic (gh-112232)
Donghee Na [Sat, 18 Nov 2023 23:05:49 +0000 (23:05 +0000)] 
gh-112213: Add @critical_section target directive to Argument Clinic (gh-112232)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
23 months agoGH-110109: Test pure functionality of `pathlib.Path` user subclasses (#112242)
Barney Gale [Sat, 18 Nov 2023 17:06:10 +0000 (17:06 +0000)] 
GH-110109: Test pure functionality of `pathlib.Path` user subclasses (#112242)

Add `PurePathTest` as a superclass of `PathTest`, and therefore also
`PathSubclassTest`. This adds coverage of pure functionality in user
subclasses of `pathlib.Path`.

Remove `PosixPathAsPureTest` and `WindowsPathAsPureTest`, as they
now duplicate `PosixPathTest` and `WindowsPathTest`.

This makes the MROs of test unit classes match the MROs of pathlib
classes.

23 months agoGH-110109: Fix misplaced tests for `pathlib.WindowsPath.owner()` and `group()` (...
Barney Gale [Sat, 18 Nov 2023 15:42:07 +0000 (15:42 +0000)] 
GH-110109: Fix misplaced tests for `pathlib.WindowsPath.owner()` and `group()` (#112239)

Move test methods from `WindowsPathAsPureTest` to `WindowsPathTest` unit.
The former test unit is intended to exercise only pure path functionality.

23 months agogh-112234: Remove the toplevel parameter in converttuple() (GH-112235)
Serhiy Storchaka [Sat, 18 Nov 2023 11:47:34 +0000 (13:47 +0200)] 
gh-112234: Remove the toplevel parameter in converttuple() (GH-112235)

It is and always was 0.

23 months agogh-111926: Update _weakref to be threadsafe in --disable-gil build (gh-112189)
Donghee Na [Sat, 18 Nov 2023 07:09:23 +0000 (07:09 +0000)] 
gh-111926: Update _weakref to be threadsafe in --disable-gil build (gh-112189)

23 months agogh-110319: Assert type_version != 0 before using it (#112226)
Guido van Rossum [Sat, 18 Nov 2023 04:58:13 +0000 (20:58 -0800)] 
gh-110319: Assert type_version != 0 before using it (#112226)

- Ensure that `assert(type_version != 0);` always comes *before* using `type_version`

Also:
- In cases_generator, rename `-v` to from `--verbose` to `--viable`

23 months agogh-111810: Fix `test_repr_deep` from `test_userlist` on WASI (#112197)
Nikita Sobolev [Sat, 18 Nov 2023 00:08:23 +0000 (03:08 +0300)] 
gh-111810: Fix `test_repr_deep` from `test_userlist` on WASI (#112197)

Co-authored-by: Brett Cannon <brett@python.org>
23 months agoGH-111808: Make the default value for `test.support.infinite_recursion()` conditional...
Brett Cannon [Fri, 17 Nov 2023 23:52:11 +0000 (15:52 -0800)] 
GH-111808: Make the default value for `test.support.infinite_recursion()` conditional on compiler optimizations (GH-112223)

Co-authored-by: Victor Stinner <vstinner@python.org>
23 months agoFix typo in documentation of `importlib.metadata` (GH-112099)
Charlie Zhao [Fri, 17 Nov 2023 23:11:30 +0000 (07:11 +0800)] 
Fix typo in documentation of `importlib.metadata` (GH-112099)

Fix minor typo in importlib doc

23 months agoA few more cases_generator cleanups (#112220)
Guido van Rossum [Fri, 17 Nov 2023 22:36:37 +0000 (14:36 -0800)] 
A few more cases_generator cleanups (#112220)

23 months agogh-112026: Update What's New: _PyObject_Vectorcall() was restored (#112171)
Victor Stinner [Fri, 17 Nov 2023 22:30:42 +0000 (23:30 +0100)] 
gh-112026: Update What's New: _PyObject_Vectorcall() was restored (#112171)

23 months agoVarious small improvements to uop debug output (#112218)
Guido van Rossum [Fri, 17 Nov 2023 22:25:57 +0000 (14:25 -0800)] 
Various small improvements to uop debug output (#112218)

- Show uop name in Error/DEOPT messages
- Add target to some messages
- Expose uop_name() as _PyUopName()

23 months agogh-106529: Cleanups split off gh-112134 (#112214)
Guido van Rossum [Fri, 17 Nov 2023 19:49:42 +0000 (11:49 -0800)] 
gh-106529: Cleanups split off gh-112134 (#112214)

- Double max trace size to 256
- Add a dependency on executor_cases.c.h for ceval.o
- Mark `_SPECIALIZE_UNPACK_SEQUENCE` as `TIER_ONE_ONLY`
- Add debug output back showing the optimized trace
- Bunch of cleanups to Tools/cases_generator/

23 months agoFix syntax in CODEOWNERS file (#112210)
Alex Waygood [Fri, 17 Nov 2023 18:31:45 +0000 (18:31 +0000)] 
Fix syntax in CODEOWNERS file (#112210)

23 months agogh-112194: Convert more examples to doctests in `typing.py` (#112195)
Nikita Sobolev [Fri, 17 Nov 2023 17:56:31 +0000 (20:56 +0300)] 
gh-112194: Convert more examples to doctests in `typing.py` (#112195)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
23 months agoGH-110109: Speed up `pathlib._PathBase.resolve()` (#110412)
Barney Gale [Fri, 17 Nov 2023 16:58:17 +0000 (16:58 +0000)] 
GH-110109: Speed up `pathlib._PathBase.resolve()` (#110412)

- Add fast path to `_split_stack()`
- Skip unnecessarily resolution of the current directory when a relative
  path is given to `resolve()`
- Remove stat and target caches, which slow down most `resolve()` calls in
  practice.
- Slightly refactor code for clarity.

23 months agoTweak my interests (and Mark Shannon's :-) in CODEOWNERS (#112206)
Guido van Rossum [Fri, 17 Nov 2023 16:44:51 +0000 (08:44 -0800)] 
Tweak my interests (and Mark Shannon's :-) in CODEOWNERS (#112206)

23 months agoGH-110109: Churn `pathlib.PurePath` methods (#112012)
Barney Gale [Fri, 17 Nov 2023 15:32:50 +0000 (15:32 +0000)] 
GH-110109: Churn `pathlib.PurePath` methods (#112012)

Re-arrange `pathlib.PurePath` methods in source code. No other changes.

The `PurePath` implementations of certain special methods, such as
`__eq__()` and `__hash__()`, are not usually applicable to user subclasses
of `_PathBase`. To facilitate their removal, another patch will split the
`PurePath` class into `_PurePathBase` and `PurePath`, with the latter
providing these special methods.

This patch prepares the ground for splitting `PurePath`. It's similar to
e8d77b0, which preceded splitting `Path`. By churning the methods here,
subsequent patches will be easier to review and less likely to break
things.

23 months agogh-110481, doc: Add "immortal" term to the glossary (#112180)
Victor Stinner [Fri, 17 Nov 2023 14:09:19 +0000 (15:09 +0100)] 
gh-110481, doc: Add "immortal" term to the glossary (#112180)

23 months agogh-94309: "What's new in Python 3.12": improve deprecation notice for typing.Hashable...
Ori Avtalion [Fri, 17 Nov 2023 12:30:47 +0000 (14:30 +0200)] 
gh-94309: "What's new in Python 3.12": improve deprecation notice for typing.Hashable and typing.Sized (#112196)

23 months agogh-112070: make `functools.lru_cache` threadsafe in --disable-gil build (gh-112111)
Wanderxjtu [Fri, 17 Nov 2023 05:03:02 +0000 (13:03 +0800)] 
gh-112070: make `functools.lru_cache` threadsafe in --disable-gil build (gh-112111)

* gh-112070: make `functools.lrucacle` threadsafe in --disable-gil build

* gh-112070: update generate `functoolsmodule` files

* gh-112070: add NEWS file

* Delete Misc/NEWS.d/next/Library/2023-11-15-20-19-45.gh-issue-112070.q6OhcU.rst

* gh-112070: reformat functoolsmodule.c

---------

Co-authored-by: Sam Gross <colesbury@gmail.com>
23 months agogh-112165: Fix typo in `__main__.py` (#112183)
Terry Jan Reedy [Fri, 17 Nov 2023 01:05:16 +0000 (20:05 -0500)] 
gh-112165: Fix typo in `__main__.py` (#112183)

Change '[2]' to '[1]' to get second argument.

23 months agogh-111799: Fix `testRecursiveRepr` from `test_fileio` on WASI (GH-112181)
Nikita Sobolev [Thu, 16 Nov 2023 23:12:27 +0000 (02:12 +0300)] 
gh-111799: Fix `testRecursiveRepr` from `test_fileio` on WASI (GH-112181)

23 months agogh-111482: Fix time_clockid_converter() on AIX (#112170)
Victor Stinner [Thu, 16 Nov 2023 23:00:16 +0000 (00:00 +0100)] 
gh-111482: Fix time_clockid_converter() on AIX (#112170)

clockid_t is defined as long long on AIX.

23 months agogh-111800: Fix `test_recursive_repr` from `test_io` under WASI to not recurse so...
Nikita Sobolev [Thu, 16 Nov 2023 19:47:38 +0000 (22:47 +0300)] 
gh-111800: Fix `test_recursive_repr` from `test_io` under WASI to not recurse so deeply (GH-112150)

23 months agoRemove `imp_dummy_def` from `Tools/c-analyzer/cpython/ignored.tsv` (gh-112122)
Nikita Sobolev [Thu, 16 Nov 2023 19:21:23 +0000 (22:21 +0300)] 
Remove `imp_dummy_def` from `Tools/c-analyzer/cpython/ignored.tsv` (gh-112122)

It was removed in 3.12, no need to keep the ignore.

23 months agogh-111956: Add thread-safe one-time initialization. (gh-111960)
Sam Gross [Thu, 16 Nov 2023 19:19:54 +0000 (14:19 -0500)] 
gh-111956: Add thread-safe one-time initialization. (gh-111960)

23 months agogh-111881: Import lazily zipfile in support.script_helper (#112172)
Victor Stinner [Thu, 16 Nov 2023 17:57:22 +0000 (18:57 +0100)] 
gh-111881: Import lazily zipfile in support.script_helper (#112172)

It allows running the test suite when the zlib extension is missing.

23 months agogh-112155: Run `typing.py` doctests as part of `test_typing` (#112156)
Nikita Sobolev [Thu, 16 Nov 2023 15:40:09 +0000 (18:40 +0300)] 
gh-112155: Run `typing.py` doctests as part of `test_typing` (#112156)

23 months agoGH-112152: Fix typo in `typing.override` docstring (#112158)
Qua27 [Thu, 16 Nov 2023 15:16:04 +0000 (18:16 +0300)] 
GH-112152: Fix typo in `typing.override` docstring (#112158)

23 months agogh-111798: Use lower Py_C_RECURSION_LIMIT in debug mode (#112124)
Victor Stinner [Thu, 16 Nov 2023 13:52:33 +0000 (14:52 +0100)] 
gh-111798: Use lower Py_C_RECURSION_LIMIT in debug mode (#112124)

* Run again test_ast_recursion_limit() on WASI platform.
* Add _testinternalcapi.get_c_recursion_remaining().
* Fix test_ast and test_sys_settrace: test_ast_recursion_limit() and
  test_trace_unpack_long_sequence() now adjust the maximum recursion
  depth depending on the the remaining C recursion.

23 months ago[doc] Make subprocess.wait documentation more precise (#98700)
Luis Pedro Coelho [Thu, 16 Nov 2023 13:04:46 +0000 (23:04 +1000)] 
[doc] Make subprocess.wait documentation more precise (#98700)

[doc] Make subprocess.wait doc more precise

An active loop is only used when the `timeout` parameter is used on
POSIX.

When no timeout is used, the code calls `os.waitpid` internally (which puts
the process on a sleep status). On Windows, the internal Windows API
call accepts a timeout parameter, so that is delegated to the OS.

23 months agogh-110812: Isolating Extension Modules HOWTO: List GC-related gotchas (GH-111504)
Petr Viktorin [Thu, 16 Nov 2023 11:05:44 +0000 (12:05 +0100)] 
gh-110812: Isolating Extension Modules HOWTO: List GC-related gotchas (GH-111504)

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
23 months agogh-111916: Make hashlib related modules thread-safe without the GIL (#111981)
Tomas R [Wed, 15 Nov 2023 23:53:38 +0000 (00:53 +0100)] 
gh-111916: Make hashlib related modules thread-safe without the GIL (#111981)

Always use an individual lock on hash objects when in free-threaded builds.

Fixes #111916

23 months agogh-111811: Fix test_recursive_repr for WASI (#112130)
Kushal Das [Wed, 15 Nov 2023 22:28:58 +0000 (23:28 +0100)] 
gh-111811: Fix test_recursive_repr for WASI (#112130)

23 months agogh-112088: Run autoreconf in GHA check_generated_files (#112090)
Victor Stinner [Wed, 15 Nov 2023 20:47:14 +0000 (21:47 +0100)] 
gh-112088: Run autoreconf in GHA check_generated_files (#112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.

23 months agogh-112026: Add again _PyThreadState_UncheckedGet() function (#112121)
Victor Stinner [Wed, 15 Nov 2023 18:15:03 +0000 (19:15 +0100)] 
gh-112026: Add again _PyThreadState_UncheckedGet() function (#112121)

Add again the private _PyThreadState_UncheckedGet() function as an
alias to the new public PyThreadState_GetUnchecked() function.

23 months agogh-96954: Don't run regen-unicodedata in regen-all (#112120)
Victor Stinner [Wed, 15 Nov 2023 17:14:08 +0000 (18:14 +0100)] 
gh-96954: Don't run regen-unicodedata in regen-all (#112120)

The "make regen-unicodedata" should now be run manually. By the
default, it requires an Internet connection, which is not always the
case. Some Linux distributions build Linux packages in isolated
environment (without network).

23 months agogh-112026: Restore removed _PyDict_GetItemStringWithError() (#112119)
Victor Stinner [Wed, 15 Nov 2023 17:10:06 +0000 (18:10 +0100)] 
gh-112026: Restore removed _PyDict_GetItemStringWithError() (#112119)

Restore the removed _PyDict_GetItemStringWithError() function. It is
used by numpy.

23 months agogh-96954: Fix `make regen-unicodedata` in out-of-tree builds (#112118)
Miro Hrončok [Wed, 15 Nov 2023 16:42:17 +0000 (17:42 +0100)] 
gh-96954: Fix `make regen-unicodedata` in out-of-tree builds (#112118)

This avoids:

    python3.13 Tools/unicode/makeunicodedata.py
    python3.13: can't open file '.../build/debug/Tools/unicode/makeunicodedata.py': [Errno 2] No such file or directory
    make: *** [Makefile:1498: regen-unicodedata] Error 2

Re-run `make regen-unicodedata` to update the script path in generated files.

23 months agogh-112026: Restore removed private C API (#112115)
Victor Stinner [Wed, 15 Nov 2023 16:38:31 +0000 (17:38 +0100)] 
gh-112026: Restore removed private C API (#112115)

Restore removed private C API functions, macros and structures which
have no simple replacement for now:

* _PyDict_GetItem_KnownHash()
* _PyDict_NewPresized()
* _PyHASH_BITS
* _PyHASH_IMAG
* _PyHASH_INF
* _PyHASH_MODULUS
* _PyHASH_MULTIPLIER
* _PyLong_Copy()
* _PyLong_FromDigits()
* _PyLong_New()
* _PyLong_Sign()
* _PyObject_CallMethodId()
* _PyObject_CallMethodNoArgs()
* _PyObject_CallMethodOneArg()
* _PyObject_CallOneArg()
* _PyObject_EXTRA_INIT
* _PyObject_FastCallDict()
* _PyObject_GetAttrId()
* _PyObject_Vectorcall()
* _PyObject_VectorcallMethod()
* _PyStack_AsDict()
* _PyThread_CurrentFrames()
* _PyUnicodeWriter structure
* _PyUnicodeWriter_Dealloc()
* _PyUnicodeWriter_Finish()
* _PyUnicodeWriter_Init()
* _PyUnicodeWriter_Prepare()
* _PyUnicodeWriter_PrepareKind()
* _PyUnicodeWriter_WriteASCIIString()
* _PyUnicodeWriter_WriteChar()
* _PyUnicodeWriter_WriteLatin1String()
* _PyUnicodeWriter_WriteStr()
* _PyUnicodeWriter_WriteSubstring()
* _PyUnicode_AsString()
* _PyUnicode_FromId()
* _PyVectorcall_Function()
* _Py_HashDouble()
* _Py_HashPointer()
* _Py_IDENTIFIER()
* _Py_c_abs()
* _Py_c_diff()
* _Py_c_neg()
* _Py_c_pow()
* _Py_c_prod()
* _Py_c_quot()
* _Py_c_sum()
* _Py_static_string()
* _Py_static_string_init()

23 months agogh-112026: Add again <unistd.h> include in Python.h (#112046)
Victor Stinner [Wed, 15 Nov 2023 15:59:32 +0000 (16:59 +0100)] 
gh-112026: Add again <unistd.h> include in Python.h (#112046)

Add again <ctype.h> and <unistd.h> includes in Python.h, but don't
include them in the limited C API version 3.13 and newer.

23 months agoGH-111848: Set the IP when de-optimizing (GH-112065)
Mark Shannon [Wed, 15 Nov 2023 15:48:58 +0000 (15:48 +0000)] 
GH-111848: Set the IP when de-optimizing (GH-112065)

* Replace jumps with deopts in tier 2

* Fewer special cases of uop names

* Add target field to uop IR

* Remove more redundant SET_IP and _CHECK_VALIDITY micro-ops

* Extend whitelist of non-escaping API functions.

23 months agoFix typo in perf profiling docs (#112112)
Ryuji Tsutsui [Wed, 15 Nov 2023 15:40:19 +0000 (00:40 +0900)] 
Fix typo in perf profiling docs (#112112)

23 months agogh-108303: Delete `imp_dummy` test file (#112110)
Nikita Sobolev [Wed, 15 Nov 2023 12:26:49 +0000 (15:26 +0300)] 
gh-108303: Delete `imp_dummy` test file (#112110)

23 months agogh-111789: Use PyDict_GetItemRef() in Modules/_asynciomodule.c (GH-112072)
Serhiy Storchaka [Wed, 15 Nov 2023 04:28:30 +0000 (06:28 +0200)] 
gh-111789: Use PyDict_GetItemRef() in Modules/_asynciomodule.c (GH-112072)

23 months agoDocs: Add the time to the HTML last updated format (#110091)
Adam Turner [Wed, 15 Nov 2023 04:04:28 +0000 (04:04 +0000)] 
Docs: Add the time to the HTML last updated format (#110091)

23 months agogh-112062: Make `_struct` module thread-safe in `--disable-gil` builds (#112094)
Radislav Chugunov [Wed, 15 Nov 2023 04:00:34 +0000 (07:00 +0300)] 
gh-112062: Make `_struct` module thread-safe in `--disable-gil` builds (#112094)

* gh-112062: Make `_struct` module thread-safe in --disable-gil builds

23 months agogh-111545: Test PyHash_GetFuncDef() function (#112098)
Victor Stinner [Wed, 15 Nov 2023 02:41:29 +0000 (03:41 +0100)] 
gh-111545: Test PyHash_GetFuncDef() function (#112098)

Add Modules/_testcapi/hash.c and Lib/test/test_capi/test_hash.py.

23 months agogh-109538: Avoid RuntimeError when StreamWriter is deleted with closed loop (#111983)
DPR [Wed, 15 Nov 2023 01:17:51 +0000 (09:17 +0800)] 
gh-109538: Avoid RuntimeError when StreamWriter is deleted with closed loop (#111983)

Issue a ResourceWarning instead.

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
23 months agogh-111995: Add getnameinfo extension flag (#111994)
adder32 [Wed, 15 Nov 2023 01:00:24 +0000 (02:00 +0100)] 
gh-111995: Add getnameinfo extension flag (#111994)

Add getnameinfo extension NI_IDN flag.

23 months agogh-111545: Add Include/cpython/pyhash.h header file (#112063)
Victor Stinner [Wed, 15 Nov 2023 00:19:20 +0000 (01:19 +0100)] 
gh-111545: Add Include/cpython/pyhash.h header file (#112063)

Move non-limited C API to a new Include/cpython/pyhash.h header file.

23 months agogh-111942: Fix SystemError in the TextIOWrapper constructor (#112061)
Serhiy Storchaka [Tue, 14 Nov 2023 20:02:28 +0000 (22:02 +0200)] 
gh-111942: Fix SystemError in the TextIOWrapper constructor (#112061)

In non-debug more the check for the "errors" argument is skipped,
and then PyUnicode_AsUTF8() can fail, but its result was not checked.

Co-authored-by: Victor Stinner <vstinner@python.org>
23 months agogh-111906: Fix warnings during mimalloc build on FreeBSD (#111907)
Furkan Onder [Tue, 14 Nov 2023 16:07:46 +0000 (19:07 +0300)] 
gh-111906: Fix warnings during mimalloc build on FreeBSD (#111907)

Fix `unused function` warnings during mimalloc build on FreeBSD.

23 months agogh-111942: Fix crashes in TextIOWrapper.reconfigure() (GH-111976)
Serhiy Storchaka [Tue, 14 Nov 2023 15:37:56 +0000 (17:37 +0200)] 
gh-111942: Fix crashes in TextIOWrapper.reconfigure() (GH-111976)

* Fix crash when encoding is not string or None.
* Fix crash when both line_buffering and write_through raise exception
  when converted ti int.
* Add a number of tests for constructor and reconfigure() method
  with invalid arguments.

23 months agoGH-111848: Convert remaining jumps to deopts into tier 2 code. (GH-112045)
Mark Shannon [Tue, 14 Nov 2023 15:30:33 +0000 (15:30 +0000)] 
GH-111848: Convert remaining jumps to deopts into tier 2 code. (GH-112045)

23 months agogh-111789: Simplify bytecodes.c by using PyDict_GetItemRef() (GH-111978)
Serhiy Storchaka [Tue, 14 Nov 2023 13:38:49 +0000 (15:38 +0200)] 
gh-111789: Simplify bytecodes.c by using PyDict_GetItemRef() (GH-111978)

23 months agogh-111262: Add PyDict_Pop() function (#112028)
Victor Stinner [Tue, 14 Nov 2023 12:51:00 +0000 (13:51 +0100)] 
gh-111262: Add PyDict_Pop() function (#112028)

_PyDict_Pop_KnownHash(): remove the default value and the return type
becomes an int.

Co-authored-by: Stefan Behnel <stefan_ml@behnel.de>
Co-authored-by: Antoine Pitrou <pitrou@free.fr>
23 months agogh-110944: Make pdb completion work for alias and convenience vars (GH-110945)
Tian Gao [Tue, 14 Nov 2023 12:22:25 +0000 (04:22 -0800)] 
gh-110944: Make pdb completion work for alias and convenience vars (GH-110945)

23 months agogh-111903: Add `@critical_section` directive to Argument Clinic. (#111904)
Sam Gross [Tue, 14 Nov 2023 10:47:46 +0000 (05:47 -0500)] 
gh-111903: Add `@critical_section` directive to Argument Clinic. (#111904)

The `@critical_section` directive instructs Argument Clinic to generate calls
to `Py_BEGIN_CRITICAL_SECTION()` and `Py_END_CRITICAL_SECTION()` around the
bound function. In `--disable-gil` builds, these calls will lock and unlock
the `self` object. They are no-ops in the default build.

This is used in one place (`_io._Buffered.close`) as a demonstration.
Subsequent PRs will use it more widely in the `_io.Buffered` bindings.

23 months agogh-111789: Simplify ceval.c by using PyDict_GetItemRef() (GH-111980)
Serhiy Storchaka [Tue, 14 Nov 2023 09:29:49 +0000 (11:29 +0200)] 
gh-111789: Simplify ceval.c by using PyDict_GetItemRef() (GH-111980)

23 months agogh-111789: Simplify import.c by using PyDict_GetItemRef() (GH-111979)
Serhiy Storchaka [Tue, 14 Nov 2023 09:29:20 +0000 (11:29 +0200)] 
gh-111789: Simplify import.c by using PyDict_GetItemRef() (GH-111979)

23 months agogh-111789: Use PyDict_GetItemRef() in _ctypes (GH-111828)
Serhiy Storchaka [Tue, 14 Nov 2023 09:28:34 +0000 (11:28 +0200)] 
gh-111789: Use PyDict_GetItemRef() in _ctypes (GH-111828)

23 months agogh-111789: Use PyDict_GetItemRef() in Objects/ (GH-111827)
Serhiy Storchaka [Tue, 14 Nov 2023 09:25:39 +0000 (11:25 +0200)] 
gh-111789: Use PyDict_GetItemRef() in Objects/ (GH-111827)

23 months agogh-111622: Fix doc for items views (#112051)
Terry Jan Reedy [Tue, 14 Nov 2023 07:41:20 +0000 (02:41 -0500)] 
gh-111622: Fix doc for items views (#112051)

They are set-like even when some values are not hashable,
but work even better when all are.

23 months agoGH-111520: Add back the operand local (GH-111813)
Brandt Bucher [Tue, 14 Nov 2023 01:27:19 +0000 (17:27 -0800)] 
GH-111520: Add back the operand local (GH-111813)

23 months agogh-107149: make new opcode util functions private rather than public and unstable...
Irit Katriel [Tue, 14 Nov 2023 00:31:02 +0000 (00:31 +0000)] 
gh-107149: make new opcode util functions private rather than public and unstable (#112042)

23 months agogh-112007: Re-organize help utility intro message (#112017)
Terry Jan Reedy [Mon, 13 Nov 2023 19:24:03 +0000 (14:24 -0500)] 
gh-112007: Re-organize help utility intro message (#112017)

Most important: move how-to-quit sentence to the end and mention 'q'.
Re-group the other sentences and improve some wording.
---------
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
23 months agoGH-110417: Fix `glob` docs ordering (#110418)
Barney Gale [Mon, 13 Nov 2023 17:48:16 +0000 (17:48 +0000)] 
GH-110417: Fix `glob` docs ordering (#110418)

Fix incorrect placement of `translate()` docs from cf67ebf.

Move "see also: pathlib" admonition to the bottom of the page, alongside one for fnmatch. This helps the module introduction flow more naturally into the function descriptions.

Add an "Examples" subheading just before the examples. This makes it more obvious that examples aren't specifically related to the preceding documentation of `escape()` and `translate()`.

23 months agoGH-72904: Add `glob.translate()` function (#106703)
Barney Gale [Mon, 13 Nov 2023 17:15:56 +0000 (17:15 +0000)] 
GH-72904: Add `glob.translate()` function (#106703)

Add `glob.translate()` function that converts a pathname with shell wildcards to a regular expression. The regular expression is used by pathlib to implement `match()` and `glob()`.

This function differs from `fnmatch.translate()` in that wildcards do not match path separators by default, and that a `*` pattern segment matches precisely one path segment. When *recursive* is set to true, `**` pattern segments match any number of path segments, and `**` cannot appear outside its own segment.

In pathlib, this change speeds up directory walking (because `_make_child_relpath()` does less work), makes path objects smaller (they don't need a `_lines` slot), and removes the need for some gnarly code.

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
23 months agogh-111138: Add PyList_Extend() and PyList_Clear() functions (#111862)
Victor Stinner [Mon, 13 Nov 2023 16:14:56 +0000 (17:14 +0100)] 
gh-111138: Add PyList_Extend() and PyList_Clear() functions (#111862)

* Split list_extend() into two sub-functions: list_extend_fast() and
  list_extend_iter().
* list_inplace_concat() no longer has to call Py_DECREF() on the
  list_extend() result, since list_extend() now returns an int.

23 months agogh-111856: Fix os.fstat on windows with FAT32 and exFAT filesystem (GH-112038)
AN Long [Mon, 13 Nov 2023 16:10:06 +0000 (00:10 +0800)] 
gh-111856: Fix os.fstat on windows with FAT32 and exFAT filesystem (GH-112038)