]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
2 years 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.

2 years 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)

2 years 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)

2 years 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>
2 years 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>
2 years 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.

2 years 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.)

2 years 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.

2 years 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.

2 years 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)

2 years 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

2 years 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)

2 years 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)

2 years 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]
2 years 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)

2 years 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)

2 years 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)

2 years 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>
2 years 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>
2 years 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.

2 years 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>
2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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>
2 years 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.

2 years 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.

2 years 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.

2 years 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)

2 years 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`

2 years 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>
2 years 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>
2 years 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

2 years 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)

2 years 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)

2 years 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()

2 years 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/

2 years 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)

2 years 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>
2 years 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.

2 years 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)

2 years 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.

2 years 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)

2 years 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)

2 years 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>
2 years 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.

2 years 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)

2 years 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.

2 years 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)

2 years 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.

2 years 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)

2 years 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.

2 years 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)

2 years 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)

2 years 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.

2 years 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.

2 years 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>
2 years 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

2 years 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)

2 years 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.

2 years 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.

2 years 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).

2 years 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.

2 years 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.

2 years 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()

2 years 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.

2 years 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.

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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

2 years 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.

2 years 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>
2 years 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.

2 years 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.

2 years 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>
2 years 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.

2 years 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.

2 years 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)

2 years 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)

2 years 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>
2 years 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)

2 years 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.

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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.

2 years 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)

2 years 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)

2 years 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>
2 years 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()`.

2 years 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>
2 years 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.

2 years 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)

2 years agogh-111460: Restore ncurses widechar support on macOS (#111878)
Davide Rizzo [Mon, 13 Nov 2023 13:36:50 +0000 (14:36 +0100)] 
gh-111460: Restore ncurses widechar support on macOS (#111878)

2 years agogh-106905: avoid incorrect SystemError about recursion depth mismatch (#106906)
Markus Mohrhard [Mon, 13 Nov 2023 13:05:17 +0000 (21:05 +0800)] 
gh-106905: avoid incorrect SystemError about recursion depth mismatch (#106906)

* gh-106905: avoid incorrect SystemError about recursion depth mismatch

* Update Misc/NEWS.d/next/Core and Builtins/2023-07-20-11-41-16.gh-issue-106905.AyZpuB.rst

---------

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2 years agogh-110944: Move pty helper to test.support and add basic pdb completion test (GH...
Tian Gao [Mon, 13 Nov 2023 10:23:06 +0000 (02:23 -0800)] 
gh-110944: Move pty helper to test.support and add basic pdb completion test (GH-111826)