]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
2 years agogh-76785: Crossinterp utils additions (gh-111530)
Eric Snow [Wed, 1 Nov 2023 23:36:40 +0000 (17:36 -0600)] 
gh-76785: Crossinterp utils additions (gh-111530)

This moves several general internal APIs out of _xxsubinterpretersmodule.c and into the new Python/crossinterp.c (and the corresponding internal headers).

Specifically:

* _Py_excinfo, etc.:  the initial implementation for non-object exception snapshots (in pycore_pyerrors.h and Python/errors.c)
* _PyXI_exception_info, etc.:  helpers for passing an exception beween interpreters (wraps _Py_excinfo)
* _PyXI_namespace, etc.:  helpers for copying a dict of attrs between interpreters
* _PyXI_Enter(), _PyXI_Exit():  functions that abstract out the transitions between one interpreter and a second that will do some work temporarily

Again, these were all abstracted out of _xxsubinterpretersmodule.c as generalizations.  I plan on proposing these as public API at some point.

2 years agogh-111089: Use PyUnicode_AsUTF8() in getargs.c (#111620)
Victor Stinner [Wed, 1 Nov 2023 23:13:55 +0000 (00:13 +0100)] 
gh-111089: Use PyUnicode_AsUTF8() in getargs.c (#111620)

Replace PyUnicode_AsUTF8AndSize() with PyUnicode_AsUTF8() to remove
the explicit check for embedded null characters.

2 years agoHigh level docs for the VM state (#111621)
Guido van Rossum [Wed, 1 Nov 2023 22:55:10 +0000 (15:55 -0700)] 
High level docs for the VM state (#111621)

2 years agoGH-111485: Silence warnings in Python/executor_cases.c.h (#111619)
Guido van Rossum [Wed, 1 Nov 2023 21:24:52 +0000 (14:24 -0700)] 
GH-111485: Silence warnings in Python/executor_cases.c.h (#111619)

2 years agogh-106718: Treat PyConfig.stdlib_dir as highest-priority setting for stdlib_dir when...
Yilei Yang [Wed, 1 Nov 2023 21:11:18 +0000 (14:11 -0700)] 
gh-106718: Treat PyConfig.stdlib_dir as highest-priority setting for stdlib_dir when calculating paths (GH-108730)

2 years agogh-106168: Update PyList_SET_ITEM() What's New doc (#111618)
Victor Stinner [Wed, 1 Nov 2023 20:46:10 +0000 (21:46 +0100)] 
gh-106168: Update PyList_SET_ITEM() What's New doc (#111618)

2 years agogh-111374: Add a new PYTHON_FROZEN_MODULES env var, equivalent of `-X frozen_modules...
Yilei Yang [Wed, 1 Nov 2023 20:39:31 +0000 (13:39 -0700)] 
gh-111374: Add a new PYTHON_FROZEN_MODULES env var, equivalent of `-X frozen_modules`. (#111411)

Adds a new PYTHON_FROZEN_MODULES env var to correspond with -X frozen_modules.

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2 years agogh-111520: Integrate the Tier 2 interpreter in the Tier 1 interpreter (#111428)
Guido van Rossum [Wed, 1 Nov 2023 20:13:02 +0000 (13:13 -0700)] 
gh-111520: Integrate the Tier 2 interpreter in the Tier 1 interpreter (#111428)

- There is no longer a separate Python/executor.c file.
- Conventions in Python/bytecodes.c are slightly different -- don't use `goto error`,
  you must use `GOTO_ERROR(error)` (same for others like `unused_local_error`).
- The `TIER_ONE` and `TIER_TWO` symbols are only valid in the generated (.c.h) files.
- In Lib/test/support/__init__.py, `Py_C_RECURSION_LIMIT` is imported from `_testcapi`.
- On Windows, in debug mode, stack allocation grows from 8MiB to 12MiB.
- **Beware!** This changes the env vars to enable uops and their debugging
  to `PYTHON_UOPS` and `PYTHON_LLTRACE`.

2 years agoSimplify trivial calls of PyUnicode_FromFormat() (GH-111605)
Serhiy Storchaka [Wed, 1 Nov 2023 17:54:32 +0000 (19:54 +0200)] 
Simplify trivial calls of PyUnicode_FromFormat() (GH-111605)

2 years agogh-111089: Use PyUnicode_AsUTF8() in Argument Clinic (#111585)
Victor Stinner [Wed, 1 Nov 2023 15:34:42 +0000 (16:34 +0100)] 
gh-111089: Use PyUnicode_AsUTF8() in Argument Clinic (#111585)

Replace PyUnicode_AsUTF8AndSize() with PyUnicode_AsUTF8() to remove
the explicit check for embedded null characters.

The change avoids to have to include explicitly <string.h> to get the
strlen() function when using a recent version of the limited C API.

2 years agogh-111495: Add tests for PyBytes and PyByteArray C API (GH-111496)
Serhiy Storchaka [Wed, 1 Nov 2023 15:31:07 +0000 (17:31 +0200)] 
gh-111495: Add tests for PyBytes and PyByteArray C API (GH-111496)

2 years agoSimplify _PyPegen_join_names_with_dot() (GH-111602)
Serhiy Storchaka [Wed, 1 Nov 2023 14:25:36 +0000 (16:25 +0200)] 
Simplify _PyPegen_join_names_with_dot() (GH-111602)

2 years agoGH-111537: Avoid using `this_instr` in asserts. (GH-111600)
Mark Shannon [Wed, 1 Nov 2023 12:59:08 +0000 (12:59 +0000)] 
GH-111537: Avoid using `this_instr` in asserts. (GH-111600)

2 years agoGH-111485: Use micro-ops to split specialization code from base action (GH-111561)
Mark Shannon [Wed, 1 Nov 2023 10:53:27 +0000 (10:53 +0000)] 
GH-111485: Use micro-ops to split specialization code from base action (GH-111561)

2 years agogh-111576: Improve documention for tkinter.messagebox (GH-111578)
Serhiy Storchaka [Wed, 1 Nov 2023 10:27:02 +0000 (12:27 +0200)] 
gh-111576: Improve documention for tkinter.messagebox (GH-111578)

2 years agogh-111495: add stub files for C API test modules (GH-111586)
Sergey B Kirpichev [Wed, 1 Nov 2023 05:44:54 +0000 (08:44 +0300)] 
gh-111495: add stub files for C API test modules (GH-111586)

This is to reduce merge conflicts (Modules/Setup.stdlib.in) for
subsequent pull requests for the issue.

2 years agogh-110367: Make regrtest --verbose3 compatible with --huntrleaks -jN (#111577)
Victor Stinner [Wed, 1 Nov 2023 03:28:55 +0000 (04:28 +0100)] 
gh-110367: Make regrtest --verbose3 compatible with --huntrleaks -jN (#111577)

"./python -m test -j1 -R 3:3 --verbose3" now works as expected, since
run_single_test() does not replace sys.stdout with StringIO in this
case.

2 years agogh-110968: Py_MOD_PER_INTERPRETER_GIL_SUPPORTED was added to 3.12 (#111584)
Victor Stinner [Wed, 1 Nov 2023 03:24:33 +0000 (04:24 +0100)] 
gh-110968: Py_MOD_PER_INTERPRETER_GIL_SUPPORTED was added to 3.12 (#111584)

2 years agogh-111282: Fix NamedTemporaryFile example code (GH-111283)
Krzysiek Karbowiak [Tue, 31 Oct 2023 22:06:02 +0000 (23:06 +0100)] 
gh-111282: Fix NamedTemporaryFile example code (GH-111283)

2 years agogh-110774: allow setting the Runner(loop_factory=...) from IsolatedAsyncioTestCase...
Thomas Grainger [Tue, 31 Oct 2023 22:03:54 +0000 (15:03 -0700)] 
gh-110774: allow setting the Runner(loop_factory=...) from IsolatedAsyncioTestCase (#110776)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
2 years agogh-108082: Add PyErr_FormatUnraisable() function (GH-111086)
Serhiy Storchaka [Tue, 31 Oct 2023 21:42:44 +0000 (23:42 +0200)] 
gh-108082: Add PyErr_FormatUnraisable() function (GH-111086)

2 years agogh-111420: Allow type comments in parenthesized `with` statements (#111468)
Tomas R [Tue, 31 Oct 2023 21:02:42 +0000 (22:02 +0100)] 
gh-111420: Allow type comments in parenthesized `with` statements (#111468)

2 years agogh-108765: Python.h no longer includes <stddef.h> on Windows (#111563)
Victor Stinner [Tue, 31 Oct 2023 20:53:57 +0000 (21:53 +0100)] 
gh-108765: Python.h no longer includes <stddef.h> on Windows (#111563)

In practice, only Windows is impacted, because the HAVE_STDDEF_H
macro was only defined on Windows.

2 years agogh-90815: Exclude mimalloc .c files from Windows build (#111532)
Dino Viehland [Tue, 31 Oct 2023 18:54:35 +0000 (11:54 -0700)] 
gh-90815: Exclude mimalloc .c files from Windows build (#111532)

* Don't include mimalloc .c's in Windows build
* Fix warnings on Windows related to mimalloc

2 years agogh-102249: Expand sys.call_tracing documentation (#102806)
Quentin Peter [Tue, 31 Oct 2023 16:24:54 +0000 (17:24 +0100)] 
gh-102249: Expand sys.call_tracing documentation (#102806)

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
2 years agogh-93607: document `root` attribute of `iterparse` (#99410)
Prometheus3375 [Tue, 31 Oct 2023 16:16:55 +0000 (19:16 +0300)] 
gh-93607: document `root` attribute of `iterparse` (#99410)

Co-authored-by: Stanley <46876382+slateny@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2 years agogh-106861: Docs: Add availability directives to all Unix-only modules (#108975)
xzmeng [Tue, 31 Oct 2023 16:14:27 +0000 (00:14 +0800)] 
gh-106861: Docs: Add availability directives to all Unix-only modules (#108975)

2 years agogh-111062: CI: Rename reusable-build-[X].yml to reusable-[X].yml (#111552)
Hugo van Kemenade [Tue, 31 Oct 2023 15:55:17 +0000 (17:55 +0200)] 
gh-111062: CI: Rename reusable-build-[X].yml to reusable-[X].yml (#111552)

2 years agogh-109181: Speed up Traceback object creation by lazily compute the line number ...
Pablo Galindo Salgado [Tue, 31 Oct 2023 15:02:31 +0000 (15:02 +0000)] 
gh-109181: Speed up Traceback object creation by lazily compute the line number (#111548)

Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
2 years agoGH-111438: Add Support for Sharing Floats Between Interpreters (gh-111439)
Anthony Shaw [Tue, 31 Oct 2023 14:17:20 +0000 (23:17 +0900)] 
GH-111438: Add Support for Sharing Floats Between Interpreters (gh-111439)

This only affects users of the APIs in pycore_crossinterp.h (AKA _xxsubinterpretersmodule.c and _xxinterpchannels.c).

2 years agoGH-111485: Remove some special cases from the code generator and bytecodes.c (GH...
Mark Shannon [Tue, 31 Oct 2023 13:21:07 +0000 (13:21 +0000)] 
GH-111485: Remove some special cases from the code generator and bytecodes.c (GH-111540)

2 years agoGH-111485: Increment `next_instr` consistently at the start of the instruction. ...
Mark Shannon [Tue, 31 Oct 2023 10:09:54 +0000 (10:09 +0000)] 
GH-111485: Increment `next_instr` consistently at the start of the instruction. (GH-111486)

2 years agogh-111531: Tkinter: fix reference leaks in bind_class() and bind_all() (GH-111533)
Serhiy Storchaka [Tue, 31 Oct 2023 06:48:52 +0000 (08:48 +0200)] 
gh-111531: Tkinter: fix reference leaks in bind_class() and bind_all() (GH-111533)

2 years agogh-111301: Move importlib.resources changes to the Removed section (#111509)
Karolina Surma [Tue, 31 Oct 2023 06:46:20 +0000 (07:46 +0100)] 
gh-111301: Move importlib.resources changes to the Removed section (#111509)

2 years agogh-111301: Move `importlib.resources.files` change to What's new in Python 3.12 ...
Karolina Surma [Tue, 31 Oct 2023 06:01:00 +0000 (07:01 +0100)] 
gh-111301: Move `importlib.resources.files` change to What's new in Python 3.12 (#111512)

2 years agogh-111062 CI: Update skip lists for resuable workflows (#111521)
Hugo van Kemenade [Tue, 31 Oct 2023 05:49:15 +0000 (07:49 +0200)] 
gh-111062 CI: Update skip lists for resuable workflows (#111521)

CI: Update skip lists

2 years agogh-111277: In summarize_stats.py, don't fail fast on invalid ratios (#111278)
Michael Droettboom [Tue, 31 Oct 2023 00:10:07 +0000 (20:10 -0400)] 
gh-111277: In summarize_stats.py, don't fail fast on invalid ratios (#111278)

2 years agogh-109329: Count tier2 opcode misses (#110561)
Michael Droettboom [Tue, 31 Oct 2023 00:02:45 +0000 (20:02 -0400)] 
gh-109329: Count tier2 opcode misses (#110561)

This keeps a separate 'miss' counter for each micro-opcode, incremented whenever a guard uop takes a deoptimization side exit.

2 years agogh-76785: Move the Cross-Interpreter Code to Its Own File (gh-111502)
Eric Snow [Mon, 30 Oct 2023 22:53:10 +0000 (16:53 -0600)] 
gh-76785: Move the Cross-Interpreter Code to Its Own File (gh-111502)

This is partly to clear this stuff out of pystate.c, but also in preparation for moving some code out of _xxsubinterpretersmodule.c.  This change also moves this stuff to the internal API (new: Include/internal/pycore_crossinterp.h).  @vstinner did this previously and I undid it.  Now I'm re-doing it. :/

2 years agogh-110697: Use CLOCK_RES in test_os.TimerfdTests (#111529)
Victor Stinner [Mon, 30 Oct 2023 22:47:59 +0000 (23:47 +0100)] 
gh-110697: Use CLOCK_RES in test_os.TimerfdTests (#111529)

More TimerfdTests tests tolerate a difference of 1 ms in measured
elapsed time.

2 years agogh-90815: Fix mimalloc atomic.h on Windows arm64 (#111527)
Victor Stinner [Mon, 30 Oct 2023 22:33:49 +0000 (23:33 +0100)] 
gh-90815: Fix mimalloc atomic.h on Windows arm64 (#111527)

mi_atomic_load_explicit() casts 'p' argument to drop the 'const'
qualifier on Windows arm64 platform. Fix the compiler warning:

    'function': different 'const' qualifiers
    (compiling source file ..\Objects\mimalloc\options.c)

2 years agogh-90815: Fix mimalloc build on WASI (#111524)
Victor Stinner [Mon, 30 Oct 2023 22:10:22 +0000 (23:10 +0100)] 
gh-90815: Fix mimalloc build on WASI (#111524)

Include <unistd.h> to get sbrk() function.

2 years agogh-90815: Fix _PyMem_MimallocEnabled() compiler warning (#111522)
Victor Stinner [Mon, 30 Oct 2023 22:05:49 +0000 (23:05 +0100)] 
gh-90815: Fix _PyMem_MimallocEnabled() compiler warning (#111522)

Don't declare _PyMem_MimallocEnabled() if WITH_PYMALLOC macro is not
defined (./configure --without-pymalloc).

Fix also a typo in _PyInterpreterState_FinalizeAllocatedBlocks().

2 years agoRemove myself from typing CODEOWNERS (#111523)
Ken Jin [Mon, 30 Oct 2023 21:08:26 +0000 (05:08 +0800)] 
Remove myself from typing CODEOWNERS (#111523)

2 years agogh-111181: Fix enum doctests (GH-111180)
Nikita Sobolev [Mon, 30 Oct 2023 19:56:29 +0000 (22:56 +0300)] 
gh-111181: Fix enum doctests (GH-111180)

Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
2 years agogh-111366: Correctly show custom syntax error messages in the codeop module functions...
Pablo Galindo Salgado [Mon, 30 Oct 2023 19:24:21 +0000 (19:24 +0000)] 
gh-111366: Correctly show custom syntax error messages in the codeop module functions (#111384)

2 years agogh-111284: Make multiprocessing tests with threads faster and more reliable (GH-111285)
Serhiy Storchaka [Mon, 30 Oct 2023 17:18:36 +0000 (19:18 +0200)] 
gh-111284: Make multiprocessing tests with threads faster and more reliable (GH-111285)

2 years agogh-110481: Fix _Py_ThreadId for non-free-threaded mode (gh-111503)
Donghee Na [Mon, 30 Oct 2023 17:16:18 +0000 (02:16 +0900)] 
gh-110481: Fix _Py_ThreadId for non-free-threaded mode (gh-111503)

2 years agogh-108082: C API: Add tests for PyErr_WriteUnraisable() (GH-111455)
Serhiy Storchaka [Mon, 30 Oct 2023 17:01:03 +0000 (19:01 +0200)] 
gh-108082: C API: Add tests for PyErr_WriteUnraisable() (GH-111455)

Also document the behavior when called with NULL.

2 years agogh-109515: When generating deep frozen modules on Windows, use a list file instead...
Riccardo Ghetta [Mon, 30 Oct 2023 16:14:26 +0000 (17:14 +0100)] 
gh-109515: When generating deep frozen modules on Windows, use a list file instead of arguments (GH-109516)

2 years agogh-110481: Implement biased reference counting (gh-110764)
Sam Gross [Mon, 30 Oct 2023 16:06:09 +0000 (12:06 -0400)] 
gh-110481: Implement biased reference counting (gh-110764)

2 years agogh-90815: Add mimalloc memory allocator (#109914)
Dino Viehland [Mon, 30 Oct 2023 15:43:11 +0000 (08:43 -0700)] 
gh-90815: Add mimalloc memory allocator (#109914)

* Add mimalloc v2.12

Modified src/alloc.c to remove include of alloc-override.c and not
compile new handler.

Did not include the following files:

 - include/mimalloc-new-delete.h
 - include/mimalloc-override.h
 - src/alloc-override-osx.c
 - src/alloc-override.c
 - src/static.c
 - src/region.c

mimalloc is thread safe and shares a single heap across all runtimes,
therefore finalization and getting global allocated blocks across all
runtimes is different.

* mimalloc: minimal changes for use in Python:

 - remove debug spam for freeing large allocations
 - use same bytes (0xDD) for freed allocations in CPython and mimalloc
   This is important for the test_capi debug memory tests

* Don't export mimalloc symbol in libpython.
* Enable mimalloc as Python allocator option.
* Add mimalloc MIT license.
* Log mimalloc in Lib/test/pythoninfo.py.
* Document new mimalloc support.
* Use macro defs for exports as done in:
  https://github.com/python/cpython/pull/31164/

Co-authored-by: Sam Gross <colesbury@gmail.com>
Co-authored-by: Christian Heimes <christian@python.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
2 years agogh-111062: Reusable Windows build that supports free-threaded mode as the conditional...
Donghee Na [Mon, 30 Oct 2023 15:30:40 +0000 (00:30 +0900)] 
gh-111062: Reusable Windows build that supports free-threaded mode as the conditional CI (#111493)

* gh-111062 Set up free-threaded CI for windows

Co-authored-by: Donghee Na <donghee.na@python.org>
* Apply suggestions from code review

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* Update

* Update names

* Add files

* Update

* Revert "Update"

This reverts commit 4f17e1af0dbce3b7959b93b41baaf040dee790cc.

* fix

---------

Co-authored-by: juanjose.tenorio <juanjose2611@gmail.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2 years agogh-111062: Update name of reusable workflows for Ubuntu / macOS (gh-111494)
Donghee Na [Mon, 30 Oct 2023 15:15:22 +0000 (00:15 +0900)] 
gh-111062: Update name of reusable workflows for Ubuntu / macOS (gh-111494)

gh-111062 Update name of reusable workflows for linux / macOS

2 years agogh-111062: Reusable ubuntu build that supports free-threaded mode as the conditional...
NCLI [Mon, 30 Oct 2023 14:28:16 +0000 (23:28 +0900)] 
gh-111062: Reusable ubuntu build that supports free-threaded mode as the conditional CI (#111452)

Co-authored-by: Donghee Na <donghee.na92@gmail.com>
2 years agogh-106168: Check allocated instead of size index bounds in PyList_SET_ITEM() (#111480)
scoder [Mon, 30 Oct 2023 11:24:21 +0000 (12:24 +0100)] 
gh-106168: Check allocated instead of size index bounds in PyList_SET_ITEM() (#111480)

Check the index bound assertions in PyList_SET_ITEM() against [0:allocated] instead of [0:size] to re-allow valid use cases that assign within the allocated area.

2 years agoGH-111339: Fix initialization and finalization of static optimizer types (GH-111430)
Savannah Ostrowski [Sun, 29 Oct 2023 20:53:25 +0000 (13:53 -0700)] 
GH-111339: Fix initialization and finalization of static optimizer types (GH-111430)

2 years agogh-111165: Remove documentation for moved functions (GH-111467)
Serhiy Storchaka [Sun, 29 Oct 2023 19:34:22 +0000 (21:34 +0200)] 
gh-111165: Remove documentation for moved functions (GH-111467)

2 years agogh-101100: Fix sphinx warnings in `library/asyncio-eventloop.rst` (GH-111222)
Nikita Sobolev [Sun, 29 Oct 2023 19:31:01 +0000 (22:31 +0300)] 
gh-101100: Fix sphinx warnings in `library/asyncio-eventloop.rst` (GH-111222)

* gh-101100: Fix sphinx warnings in `library/asyncio-eventloop.rst`

* Update Doc/library/socket.rst

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* Update asyncio-eventloop.rst

* Update socket.rst

---------

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2 years agogh-111347: Remove wrong assertion in test_sendfile (#111377)
zcxsythenew [Sun, 29 Oct 2023 15:22:15 +0000 (23:22 +0800)] 
gh-111347: Remove wrong assertion in test_sendfile (#111377)

Windows is different.

2 years agogh-111062: Build both default and free-threaded on macOS (gh-111449)
Dima Tisnek [Sun, 29 Oct 2023 07:20:11 +0000 (16:20 +0900)] 
gh-111062: Build both default and free-threaded on macOS (gh-111449)

2 years agogh-94808: Add coverage test for number check (gh-111445)
Evan Kohilas [Sun, 29 Oct 2023 07:00:19 +0000 (09:00 +0200)] 
gh-94808: Add coverage test for number check (gh-111445)

2 years agogh-111062: Separate macOS build into a reusable workflow (gh-111444)
Dima Tisnek [Sun, 29 Oct 2023 06:12:16 +0000 (15:12 +0900)] 
gh-111062: Separate macOS build into a reusable workflow (gh-111444)

2 years agogh-66425: Remove the unreachable code to set `REMOTE_HOST` header (gh-111441)
c-bata [Sun, 29 Oct 2023 04:56:15 +0000 (13:56 +0900)] 
gh-66425: Remove the unreachable code to set `REMOTE_HOST` header (gh-111441)

2 years agogh-111426: Remove `test_cmd.test_coverage` (#111427)
Nikita Sobolev [Sat, 28 Oct 2023 23:01:53 +0000 (02:01 +0300)] 
gh-111426: Remove `test_cmd.test_coverage` (#111427)

2 years agoGH-110109: Move tests for `pathlib.Path.walk()` into main test classes. (#110655)
Barney Gale [Sat, 28 Oct 2023 21:26:36 +0000 (22:26 +0100)] 
GH-110109: Move tests for `pathlib.Path.walk()` into main test classes. (#110655)

2 years agogh-79033: Try to fix asyncio.Server.wait_closed() again (GH-111336)
Guido van Rossum [Sat, 28 Oct 2023 18:04:29 +0000 (11:04 -0700)] 
gh-79033: Try to fix asyncio.Server.wait_closed() again (GH-111336)

* Try to fix asyncio.Server.wait_closed() again

I identified the condition that `wait_closed()` is intended
to wait for: the server is closed *and* there are no more
active connections.

When this condition first becomes true, `_wakeup()` is called
(either from `close()` or from `_detach()`) and it sets `_waiters`
to `None`. So we just check for `self._waiters is None`; if it's
not `None`, we know we have to wait, and do so.

A problem was that the new test introduced in 3.12 explicitly
tested that `wait_closed()` returns immediately when the server
is *not* closed but there are currently no active connections.
This was a mistake (probably a misunderstanding of the intended
semantics). I've fixed the test, and added a separate test that
checks exactly for this scenario.

I also fixed an oddity where in `_wakeup()` the result of the
waiter was set to the waiter itself. This result is not used
anywhere and I changed this to `None`, to avoid a GC cycle.

* Update Lib/asyncio/base_events.py

---------

Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
2 years agoCI: Include Python version in cache.config key (#111410)
Hugo van Kemenade [Sat, 28 Oct 2023 07:23:47 +0000 (10:23 +0300)] 
CI: Include Python version in cache.config key (#111410)

* Include Python version in cache.config key, after Python setup

* Remove EOL 3.7 from branch triggers

2 years agogh-111342: fix typo in math.sumprod (GH-111416)
Sergey B Kirpichev [Sat, 28 Oct 2023 04:52:04 +0000 (07:52 +0300)] 
gh-111342: fix typo in math.sumprod (GH-111416)

2 years agogh-110205: Fix asyncio ThreadedChildWatcher._join_threads() (#110884)
Guido van Rossum [Fri, 27 Oct 2023 22:44:12 +0000 (15:44 -0700)] 
gh-110205: Fix asyncio ThreadedChildWatcher._join_threads() (#110884)

- `ThreadedChildWatcher.close()` is now *officially* a no-op; `_join_threads()` never did anything.
- Threads created by that class are now named `asyncio-waitpid-NNN`.
- `test.test_asyncio.utils.TestCase.close_loop()` now waits for the child watcher's threads, but not forever; if a thread hangs, it raises `RuntimeError`.

2 years agogh-59013: Make line number of function breakpoint more precise (#110582)
Tian Gao [Fri, 27 Oct 2023 21:01:31 +0000 (14:01 -0700)] 
gh-59013: Make line number of function breakpoint more precise (#110582)

2 years agogh-108765: Include explicitly <unistd.h> in signalmodule.c (#111402)
Victor Stinner [Fri, 27 Oct 2023 20:56:12 +0000 (22:56 +0200)] 
gh-108765: Include explicitly <unistd.h> in signalmodule.c (#111402)

unistd.h is needed by alarm() and pause() functions.

2 years agogh-111406: Fix broken link to bpython's site (#111407)
Zack Cerza [Fri, 27 Oct 2023 18:36:22 +0000 (12:36 -0600)] 
gh-111406: Fix broken link to bpython's site (#111407)

2 years agoFix typos in import system docs (#111396)
Jonathan Berthias [Fri, 27 Oct 2023 13:20:55 +0000 (15:20 +0200)] 
Fix typos in import system docs (#111396)

2 years agogh-111386: Fix `uint32_t` cast in `generated_cases.c.h` (#111387)
Nikita Sobolev [Fri, 27 Oct 2023 11:37:59 +0000 (14:37 +0300)] 
gh-111386: Fix `uint32_t` cast in `generated_cases.c.h` (#111387)

2 years agogh-111388: Add `show_group` parameter to `traceback.format_exception_only` (#111390)
Nikita Sobolev [Fri, 27 Oct 2023 10:11:26 +0000 (13:11 +0300)] 
gh-111388: Add `show_group` parameter to `traceback.format_exception_only` (#111390)

2 years agogh-111276: Clarify docs and comments about the role of LC_CTYPE (#111319)
Łukasz Langa [Fri, 27 Oct 2023 09:43:01 +0000 (11:43 +0200)] 
gh-111276: Clarify docs and comments about the role of LC_CTYPE (#111319)

Fix locale.LC_CTYPE documentation to no longer mention string.lower() et al. Those functions were removed in Python 3.0:
https://docs.python.org/2/library/string.html#deprecated-string-functions

Also, fix a comment in logging about locale-specific behavior of `str.lower()`.

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2 years agono-issue: Remove unused variable in getpath.py (gh-111372)
Satish Pokala [Fri, 27 Oct 2023 06:25:22 +0000 (11:55 +0530)] 
no-issue: Remove unused variable in getpath.py (gh-111372)

2 years agogh-89519: Remove classmethod descriptor chaining, deprecated since 3.11 (gh-110163)
Raymond Hettinger [Fri, 27 Oct 2023 05:24:56 +0000 (00:24 -0500)] 
gh-89519: Remove classmethod descriptor chaining, deprecated since 3.11 (gh-110163)

2 years agogh-111343: Fix `itertools` docs: `start` arg is optional for `count` (gh-111344)
Nikita Sobolev [Fri, 27 Oct 2023 04:30:13 +0000 (07:30 +0300)] 
gh-111343: Fix `itertools` docs: `start` arg is optional for `count` (gh-111344)

2 years agogh-109587: Allow "precompiled" perf-trampolines to largely mitigate the cost of enabl...
gsallam [Fri, 27 Oct 2023 03:57:29 +0000 (20:57 -0700)] 
gh-109587: Allow "precompiled" perf-trampolines to largely mitigate the cost of enabling perf-trampolines (#109666)

2 years agogh-111380: Show SyntaxWarnings only once when parsing if invalid syntax is encouinter...
Pablo Galindo Salgado [Fri, 27 Oct 2023 03:19:34 +0000 (12:19 +0900)] 
gh-111380: Show SyntaxWarnings only once when parsing if invalid syntax is encouintered (#111381)

2 years agoGH-94438: Fix RuntimeWarning for jump tests in test_sys_settrace (GH-111341)
Tian Gao [Thu, 26 Oct 2023 18:47:51 +0000 (11:47 -0700)] 
GH-94438: Fix RuntimeWarning for jump tests in test_sys_settrace (GH-111341)

2 years agoGH-111293: Fix DirEntry.inode dropping higher bits on Windows (GH-111294)
zcxsythenew [Thu, 26 Oct 2023 16:37:52 +0000 (00:37 +0800)] 
GH-111293: Fix DirEntry.inode dropping higher bits on Windows (GH-111294)

2 years agogh-111354: define names for RESUME oparg values (#111365)
Irit Katriel [Thu, 26 Oct 2023 15:30:18 +0000 (16:30 +0100)] 
gh-111354: define names for RESUME oparg values (#111365)

2 years agogh-111259: Optimize recursive wildcards in pathlib (GH-111303)
Serhiy Storchaka [Thu, 26 Oct 2023 15:07:06 +0000 (18:07 +0300)] 
gh-111259: Optimize recursive wildcards in pathlib (GH-111303)

Regular expression pattern `(?s:.)` is much faster than `[\s\S]`.

2 years agogh-109094: replace frame->prev_instr by frame->instr_ptr (#109095)
Irit Katriel [Thu, 26 Oct 2023 13:43:10 +0000 (14:43 +0100)] 
gh-109094: replace frame->prev_instr by frame->instr_ptr (#109095)

2 years agoOutput more details in the re tracing (GH-111357)
Serhiy Storchaka [Thu, 26 Oct 2023 13:42:42 +0000 (16:42 +0300)] 
Output more details in the re tracing (GH-111357)

2 years agogh-111348: Fix direct invocation of `test_doctest`; remove `test_doctest.test_coverag...
Nikita Sobolev [Thu, 26 Oct 2023 12:45:39 +0000 (15:45 +0300)] 
gh-111348: Fix direct invocation of `test_doctest`; remove `test_doctest.test_coverage` (#111349)

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
2 years agoGH-111213: Fix a few broken stats (GH-111216)
Mark Shannon [Thu, 26 Oct 2023 10:33:12 +0000 (11:33 +0100)] 
GH-111213: Fix a few broken stats (GH-111216)

2 years agoGH-111339: Change `valid` property of executors to `is_valid()` method (GH-111350)
Mark Shannon [Thu, 26 Oct 2023 10:31:51 +0000 (11:31 +0100)] 
GH-111339: Change `valid` property of executors to `is_valid()` method (GH-111350)

2 years agobpo-43950: handle wide unicode characters in tracebacks (#28150)
Batuhan Taskaya [Thu, 26 Oct 2023 07:05:29 +0000 (00:05 -0700)] 
bpo-43950: handle wide unicode characters in tracebacks (#28150)

2 years agogh-67224: Show source lines in tracebacks when using the -c option when running Pytho...
Pablo Galindo Salgado [Thu, 26 Oct 2023 06:17:28 +0000 (15:17 +0900)] 
gh-67224: Show source lines in tracebacks when using the -c option when running Python (#111200)

2 years agoDocs: Add `restart_events()` and positional arg semantics for `sys.monitoring` (...
Tian Gao [Wed, 25 Oct 2023 18:03:32 +0000 (11:03 -0700)] 
Docs: Add `restart_events()` and positional arg semantics for `sys.monitoring` (#111291)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2 years agogh-110679: Improved markup in enum.rst (GH-110747)
Khalil Mouawad [Wed, 25 Oct 2023 17:32:09 +0000 (20:32 +0300)] 
gh-110679: Improved markup in enum.rst (GH-110747)

2 years agogh-100762: Fix optimization in gen_close (#111069)
Irit Katriel [Wed, 25 Oct 2023 15:22:34 +0000 (16:22 +0100)] 
gh-100762: Fix optimization in gen_close  (#111069)

2 years agogh-111165: Add missed "support." prefix for "verbose" (GH-111327)
Serhiy Storchaka [Wed, 25 Oct 2023 14:50:25 +0000 (17:50 +0300)] 
gh-111165: Add missed "support." prefix for "verbose" (GH-111327)

2 years agogh-108590: Improve sqlite3 docs on encoding issues and how to handle those (#108699)
Erlend E. Aasland [Wed, 25 Oct 2023 13:58:00 +0000 (15:58 +0200)] 
gh-108590: Improve sqlite3 docs on encoding issues and how to handle those (#108699)

Add a guide for how to handle non-UTF-8 text encodings.
Link to that guide from the 'text_factory' docs.

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
Co-authored-by: Corvin <corvin@corvin.dev>
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2 years agogh-111187: Postpone removal version for locale.getdefaultlocale() to 3.15 (#111188)
Hugo van Kemenade [Wed, 25 Oct 2023 13:47:41 +0000 (16:47 +0300)] 
gh-111187: Postpone removal version for locale.getdefaultlocale() to 3.15 (#111188)

2 years agogh-111230: Fix errors checking in _ssl module init (#111232)
Nikita Sobolev [Wed, 25 Oct 2023 13:42:18 +0000 (16:42 +0300)] 
gh-111230: Fix errors checking in _ssl module init (#111232)

Introduce ADD_INT_CONST macro wrapper for PyModule_AddIntConstant()