8bea6c4 | Victor Stinner | 21 March 2024, 16:07:00 UTC | gh-115754: Add Py_GetConstant() function (#116883) Add Py_GetConstant() and Py_GetConstantBorrowed() functions. In the limited C API version 3.13, getting Py_None, Py_False, Py_True, Py_Ellipsis and Py_NotImplemented singletons is now implemented as function calls at the stable ABI level to hide implementation details. Getting these constants still return borrowed references. Add _testlimitedcapi/object.c and test_capi/test_object.py to test Py_GetConstant() and Py_GetConstantBorrowed() functions. | 21 March 2024, 16:07:00 UTC |
5a76d1b | Eric Snow | 21 March 2024, 16:06:35 UTC | gh-105716: Update interp->threads.main After Fork (gh-117049) I missed this in gh-109921. We also update Py_Exit() to call _PyInterpreterState_SetNotRunningMain(), if necessary. | 21 March 2024, 16:06:35 UTC |
bbee57f | Eric Snow | 21 March 2024, 15:56:12 UTC | gh-76785: Clean Up Interpreter ID Conversions (gh-117048) Mostly we unify the two different implementations of the conversion code (from PyObject * to int64_t. We also drop the PyArg_ParseTuple()-style converter function, as well as rename and move PyInterpreterID_LookUp(). | 21 March 2024, 15:56:12 UTC |
e728303 | Sam Gross | 21 March 2024, 14:01:16 UTC | gh-116522: Stop the world before fork() and during shutdown (#116607) This changes the free-threaded build to perform a stop-the-world pause before deleting other thread states when forking and during shutdown. This fixes some crashes when using multiprocessing and during shutdown when running with `PYTHON_GIL=0`. This also changes `PyOS_BeforeFork` to acquire the runtime lock (i.e., `HEAD_LOCK(&_PyRuntime)`) before forking to ensure that data protected by the runtime lock (and not just the GIL or stop-the-world) is in a consistent state before forking. | 21 March 2024, 14:01:16 UTC |
1f8b24e | Malcolm Smith | 21 March 2024, 13:20:57 UTC | gh-71052: Implement `ctypes.util.find_library` on Android (GH-116379) | 21 March 2024, 13:20:57 UTC |
d16c9d1 | Tian Gao | 21 March 2024, 10:30:10 UTC | gh-116987: Support class code objects in inspect.findsource() (GH-117025) | 21 March 2024, 10:30:10 UTC |
6547330 | Adam Turner | 21 March 2024, 03:49:10 UTC | GH-109653: Defer import of ``importlib.metadata._adapters`` (#109829) * adapters * Add comments for deferred imports with links to rationale. * Add blurb --------- Co-authored-by: Jason R. Coombs <jaraco@jaraco.com> | 21 March 2024, 03:49:10 UTC |
667294d | Jason R. Coombs | 21 March 2024, 03:01:24 UTC | gh-117089: Apply changes from importlib_metadata 7.1.0 (#117094) * Apply changes from importlib_metadata 7.1.0 * Include the data sources in the makefile (even though they're not needed) | 21 March 2024, 03:01:24 UTC |
f4cc77d | Victor Stinner | 20 March 2024, 23:06:24 UTC | gh-116869: Enable -Werror in test_cext for Free Threading (#117106) Check for warnings, but don't enable the compiler flag -Werror=declaration-after-statement. | 20 March 2024, 23:06:24 UTC |
104602a | Victor Stinner | 20 March 2024, 22:52:23 UTC | gh-105927: Limit PyWeakref_GetRef() to limited C API 3.13 (#117091) | 20 March 2024, 22:52:23 UTC |
8ad8898 | Jason R. Coombs | 20 March 2024, 21:11:00 UTC | gh-117089: Move importlib.metadata tests to their own package (#117092) * Ensure importlib.metadata tests do not leak references in sys.modules. * Move importlib.metadata tests to their own package for easier syncing with importlib_metadata. * Update owners and makefile for new directories. * Add blurb | 20 March 2024, 21:11:00 UTC |
7d44654 | Carol Willing | 20 March 2024, 21:00:59 UTC | Fix sort order for "locale encoding" glossary item (#115794) Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM> | 20 March 2024, 21:00:59 UTC |
63289b9 | Mark Shannon | 20 March 2024, 18:24:02 UTC | GH-117066: Tier 2 optimizer: Don't throw away good traces if we can't optimize them perfectly. (GH-117067) | 20 March 2024, 18:24:02 UTC |
dcaf33a | Petr Viktorin | 20 March 2024, 16:33:08 UTC | gh-114314: ctypes: remove stgdict and switch to heap types (GH-116458) Before this change, ctypes classes used a custom dict subclass, `StgDict`, as their `tp_dict`. This acts like a regular dict but also includes extra information about the type. This replaces stgdict by `StgInfo`, a C struct on the type, accessed by `PyObject_GetTypeData()` (PEP-697). All usage of `StgDict` (mainly variables named `stgdict`, `dict`, `edict` etc.) is converted to `StgInfo` (named `stginfo`, `info`, `einfo`, etc.). Where the dict is actually used for class attributes (as a regular PyDict), it's now called `attrdict`. This change -- not overriding `tp_dict` -- is made to make me comfortable with the next part of this PR: moving the initialization logic from `tp_new` to `tp_init`. The `StgInfo` is set up in `__init__` of each class, with a guard that prevents calling `__init__` more than once. Note that abstract classes (like `Array` or `Structure`) are created using `PyType_FromMetaclass` and do not have `__init__` called. Previously, this was done in `__new__`, which also wasn't called for abstract classes. Since `__init__` can be called from Python code or skipped, there is a tested guard to ensure `StgInfo` is initialized exactly once before it's used. Co-authored-by: neonene <53406459+neonene@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> | 20 March 2024, 16:33:08 UTC |
44fbab4 | Russell Keith-Magee | 20 March 2024, 15:32:56 UTC | gh-117058: Update GUI and packaging recommendations for macOS. (#117059) | 20 March 2024, 15:32:56 UTC |
9221ef2 | Brett Simmers | 20 March 2024, 15:18:26 UTC | gh-116908: Only write to `_pending_calls.calls_to_do` with atomic operations (#117044) These writes to `pending->calls_to_do` need to be atomic, because other threads can read (atomically) from `calls_to_do` without holding `pending->mutex`. | 20 March 2024, 15:18:26 UTC |
fc45998 | jkriegshauser | 20 March 2024, 14:33:28 UTC | gh-116773: Ensure overlapped objects on Windows are not deallocated too early by asyncio (GH-116774) | 20 March 2024, 14:33:28 UTC |
519b2ae | Serhiy Storchaka | 20 March 2024, 13:39:53 UTC | gh-117021: Fix integer overflow in PyLong_AsPid() on non-Windows 64-bit platforms (GH-117064) | 20 March 2024, 13:39:53 UTC |
8182319 | Nikita Sobolev | 20 March 2024, 10:43:20 UTC | gh-94808: add tests covering `PyFunction_{Get,Set}Closure` (GH-99429) | 20 March 2024, 10:43:20 UTC |
1530932 | Mark Shannon | 20 March 2024, 08:54:42 UTC | GH-108362: Incremental Cycle GC (GH-116206) | 20 March 2024, 08:54:42 UTC |
d5ebf8b | Victor Stinner | 19 March 2024, 22:23:17 UTC | gh-116869: Fix test_cext for Free Threading (#117043) Don't check for warnings on Free Threading. | 19 March 2024, 22:23:17 UTC |
438de10 | Victor Stinner | 19 March 2024, 21:58:13 UTC | gh-116869: Fix test_cext on RHEL7 (#117010) Remove -std option from CC command line. Skip C++14 test for now on non-Windows platforms (like RHEL7). | 19 March 2024, 21:58:13 UTC |
2d17309 | Serhiy Storchaka | 19 March 2024, 21:30:25 UTC | gh-117041: Add "-X gil" in the Python CLI help (GH-117042) | 19 March 2024, 21:30:25 UTC |
332ac46 | Ned Batchelder | 19 March 2024, 19:55:20 UTC | docs: announce venv creation before installing packages (#117036) | 19 March 2024, 19:55:20 UTC |
9080e9e | Hugo van Kemenade | 19 March 2024, 19:48:08 UTC | gh-101100: Fix Sphinx warnings in `library/pydoc.rst` (#116913) | 19 March 2024, 19:48:08 UTC |
1ab0d0b | Łukasz Langa | 19 March 2024, 19:06:06 UTC | gh-116886: Temporarily disable CIfuzz (memory) (#117018) | 19 March 2024, 19:06:06 UTC |
60e105c | Sam Gross | 19 March 2024, 18:40:20 UTC | gh-113964: Don't prevent new threads until all non-daemon threads exit (#116677) Starting in Python 3.12, we prevented calling fork() and starting new threads during interpreter finalization (shutdown). This has led to a number of regressions and flaky tests. We should not prevent starting new threads (or `fork()`) until all non-daemon threads exit and finalization starts in earnest. This changes the checks to use `_PyInterpreterState_GetFinalizing(interp)`, which is set immediately before terminating non-daemon threads. | 19 March 2024, 18:40:20 UTC |
025ef7a | Terry Jan Reedy | 19 March 2024, 17:55:21 UTC | gh-56374: Clarify documentation of nonlocal (#116942) Define 'nonlocal scopes' in a way that excludes class scopes. Rearrange the rest of the doc. Add "Programmer's note". | 19 March 2024, 17:55:21 UTC |
b85572c | Serhiy Storchaka | 19 March 2024, 17:26:32 UTC | gh-90300: Improve the Python CLI help output (GH-115853) * document equivalent command-line options for all environment variables * document equivalent environment variables for all command-line options * reduce the size of variable and option descriptions to minimum * remove the ending period in single-sentence descriptions Co-authored-by: Éric <merwok@netwok.org> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> | 19 March 2024, 17:26:32 UTC |
61c659e | Victor Stinner | 19 March 2024, 16:23:12 UTC | gh-116417: Move limited C API complex.c tests to _testlimitedcapi (#117014) Split complex.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. | 19 March 2024, 16:23:12 UTC |
7f64ae3 | Sunghyun Kim | 19 March 2024, 15:51:12 UTC | gh-107607: Update comment about utf-8 BOM being ignored (#107858) --------- Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> | 19 March 2024, 15:51:12 UTC |
2c82592 | Brandt Bucher | 19 March 2024, 15:47:28 UTC | GH-116017: Put JIT code and data on the same page (GH-116845) | 19 March 2024, 15:47:28 UTC |
f55e188 | Victor Stinner | 19 March 2024, 15:06:20 UTC | gh-116417: Move limited C API dict.c tests to _testlimitedcapi (#117006) Split dict.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. | 19 March 2024, 15:06:20 UTC |
7593574 | et-repositories | 19 March 2024, 14:58:40 UTC | gh-116647: Fix recursive child in dataclasses (#116790) | 19 March 2024, 14:58:40 UTC |
3cac2af | Victor Stinner | 19 March 2024, 14:04:23 UTC | gh-116417: Move limited C API long.c tests to _testlimitedcapi (#117001) * Split long.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. * Move testcapi_long.h from Modules/_testcapi/ to Modules/_testlimitedcapi/. * Add MODULE__TESTLIMITEDCAPI_DEPS to Makefile.pre.in. | 19 March 2024, 14:04:23 UTC |
a114d08 | Victor Stinner | 19 March 2024, 14:03:27 UTC | gh-92906: Enable test_cext and test_cppext on Windows (#117000) On Windows in release mode, the test_cext and test_cppext can now build C and C++ extensions. * test_cext now also builds the C extension without options. * test_cppext now also builds the C++ extension without options. * Add C++14 test to test_cppext; C++11 is not supported by MSVC. * Make setup_venv_with_pip_setuptools_wheel() quiet when support.verbose is false. Only show stdout and stderr on failure. | 19 March 2024, 14:03:27 UTC |
27cf3ed | Victor Stinner | 19 March 2024, 13:42:44 UTC | gh-90872: Fix subprocess.Popen.wait() for negative timeout (#116989) On Windows, subprocess.Popen.wait() no longer calls WaitForSingleObject() with a negative timeout: pass 0 ms if the timeout is negative. | 19 March 2024, 13:42:44 UTC |
408e127 | Russell Keith-Magee | 19 March 2024, 12:36:19 UTC | gh-114099 - Add iOS framework loading machinery. (GH-116454) Co-authored-by: Malcolm Smith <smith@chaquo.com> Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com> | 19 March 2024, 12:36:19 UTC |
a557478 | Victor Stinner | 19 March 2024, 12:30:39 UTC | gh-116417: Move limited C API unicode.c tests to _testlimitedcapi (#116993) Split unicode.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. Update test_codecs. | 19 March 2024, 12:30:39 UTC |
1312094 | Victor Stinner | 19 March 2024, 12:19:45 UTC | gh-116869: Test the limited C API in test_cext (#116995) | 19 March 2024, 12:19:45 UTC |
0f27801 | Michael Droettboom | 19 March 2024, 11:06:43 UTC | gh-116808: Fix optimized trace length histogram (GH-116827) | 19 March 2024, 11:06:43 UTC |
5405e9e | Victor Stinner | 19 March 2024, 11:05:22 UTC | gh-116869: Build test_cext with -Werror=declaration-after-statement (#116990) Make sure that the C API does not emit compiler warnings when built with -Werror=declaration-after-statement. | 19 March 2024, 11:05:22 UTC |
039d20a | Victor Stinner | 19 March 2024, 10:44:13 UTC | gh-116417: Move limited C API abstract.c tests to _testlimitedcapi (#116986) Split abstract.c and float.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. Update test_bytes and test_class. | 19 March 2024, 10:44:13 UTC |
b1bc375 | David Röthlisberger | 19 March 2024, 09:59:08 UTC | gh-116957: configparser: Do post-process values after DuplicateOptionError (GH-116958) If you catch DuplicateOptionError / DuplicateSectionError when reading a config file (the intention is to skip invalid config files) and then attempt to use the ConfigParser instance, any values it *had* read successfully so far, were stored as a list instead of string! Later `get` calls would raise "AttributeError: 'list' object has no attribute 'find'" from somewhere deep in the interpolation code. | 19 March 2024, 09:59:08 UTC |
a8e93d3 | Bogdan Romanyuk | 19 March 2024, 09:20:38 UTC | gh-115756: make PyCode_GetFirstFree an unstable API (GH-115781) | 19 March 2024, 09:20:38 UTC |
a3cf0fa | Donghee Na | 19 March 2024, 03:18:07 UTC | gh-116621: Specialize list.extend for dict items (gh-116888) | 19 March 2024, 03:18:07 UTC |
a22d05f | Aviel Boag | 19 March 2024, 00:53:14 UTC | gh-105866: fix dataclass with slots=True, weakref_slot=True (#105870) Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru> Co-authored-by: Carl Meyer <carl@oddbird.net> | 19 March 2024, 00:53:14 UTC |
1d82a41 | Victor Stinner | 18 March 2024, 23:14:29 UTC | gh-116869: Enable test_cext and test_cppext on Free Threading build (#116973) Remove the "if Py_GIL_DISABLED" skip and move all "skip" decorators to the class. Use support.check_sanitizer() | 18 March 2024, 23:14:29 UTC |
dc2d0f4 | Victor Stinner | 18 March 2024, 22:06:52 UTC | gh-116417: Fix WASI build of _testlimitedcapi (#116974) Use different function names between _testcapi and _testlimitedcapi to not confuse the WASI linker. | 18 March 2024, 22:06:52 UTC |
165cb45 | Sam Gross | 18 March 2024, 21:05:43 UTC | gh-116941: Fix pyatomic_std.h syntax errors (#116967) | 18 March 2024, 21:05:43 UTC |
ecb4a2b | Victor Stinner | 18 March 2024, 21:03:55 UTC | gh-116417: Move limited C API list.c tests to _testlimitedcapi (#116602) Split list.c and set.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. | 18 March 2024, 21:03:55 UTC |
4159644 | Pierre Ossman (ThinLinc team) | 18 March 2024, 20:15:53 UTC | gh-113538: Add asycio.Server.{close,abort}_clients (redo) (#116784) These give applications the option of more forcefully terminating client connections for asyncio servers. Useful when terminating a service and there is limited time to wait for clients to finish up their work. This is a do-over with a test fix for gh-114432, which was reverted. | 18 March 2024, 20:15:53 UTC |
a9c304c | Victor Stinner | 18 March 2024, 19:16:58 UTC | gh-116869: Make C API compatible with ISO C90 (#116950) Make the C API compatible with -Werror=declaration-after-statement compiler flag again. | 18 March 2024, 19:16:58 UTC |
590a260 | Victor Stinner | 18 March 2024, 19:15:20 UTC | gh-116869: Add test_cext test: build a C extension (#116954) | 18 March 2024, 19:15:20 UTC |
9c7b368 | Guido van Rossum | 18 March 2024, 18:13:11 UTC | gh-108716: Cleanup remaining deepfreeze infrastructure (#116919) Keep Tools/build/deepfreeze.py around (we may repurpose it for deepfreezing non-code objects), and keep basic "clean" targets that remove the output of former deep-freeze activities, to keep the build directories of current devs clean. | 18 March 2024, 18:13:11 UTC |
7e1f38f | Guido van Rossum | 18 March 2024, 18:11:10 UTC | gh-116916: Remove separate next_func_version counter (#116918) Somehow we ended up with two separate counter variables tracking "the next function version". Most likely this was a historical accident where an old branch was updated incorrectly. This PR merges the two counters into a single one: `interp->func_state.next_version`. | 18 March 2024, 18:11:10 UTC |
76d0868 | Guido van Rossum | 18 March 2024, 18:08:43 UTC | Cleanup tier2 debug output (#116920) Various tweaks, including a slight refactor of the special cases for `_PUSH_FRAME`/`_POP_FRAME` to show the actual operand emitted. | 18 March 2024, 18:08:43 UTC |
849e071 | Zachary Ware | 18 March 2024, 17:07:25 UTC | gh-115119: Switch Windows build to mpdecimal external (GH-115182) This includes adding what should be a relatively temporary `Modules/_decimal/windows/mpdecimal.h` shim to choose between `mpdecimal32vc.h` or `mpdecimal64vc.h` based on which of `CONFIG_64` or `CONFIG_32` is defined. | 18 March 2024, 17:07:25 UTC |
7707b14 | Duprat | 18 March 2024, 16:15:29 UTC | gh-115258: Fix hanging tests for threading queue shutdown (#115940) This reinstates `test_shutdown_immediate_all_methods_in_many_threads` and improves `test_shutdown_all_methods_in_many_threads`. | 18 March 2024, 16:15:29 UTC |
f139d84 | Victor Stinner | 18 March 2024, 16:14:42 UTC | gh-116869: Fix redefinition of the _PyOptimizerObject type (#116963) Defining a type twice is a C11 feature and so makes the C API incompatible with C99. Fix the issue by only defining the type once. Example of warning (treated as an error): In file included from Include/Python.h:122: Include/cpython/optimizer.h:77:3: error: redefinition of typedef '_PyOptimizerObject' is a C11 feature [-Werror,-Wtypedef-redefinition] } _PyOptimizerObject; ^ build/Include/cpython/optimizer.h:60:35: note: previous definition is here typedef struct _PyOptimizerObject _PyOptimizerObject; ^ | 18 March 2024, 16:14:42 UTC |
1d95451 | Victor Stinner | 18 March 2024, 16:13:01 UTC | gh-63207: Use GetSystemTimePreciseAsFileTime() in time.time() (#116822) | 18 March 2024, 16:13:01 UTC |
c80d2d3 | Sam Gross | 18 March 2024, 15:50:32 UTC | gh-116877: Update `wheel` to version `0.43.0` (#116878) | 18 March 2024, 15:50:32 UTC |
52ef443 | kernc | 18 March 2024, 15:13:02 UTC | gh-71765: Fix inspect.getsource() on empty file (GH-20809) * bpo-27578: Fix inspect.getsource() on empty file For modules from empty files, `inspect.getsource()` now returns an empty string, and `inspect.getsourcelines()` returns a list of one empty string, fixing the expected invariant. As indicated by `exec('')`, empty strings are valid Python source code. Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net> | 18 March 2024, 15:13:02 UTC |
f6cdc6b | Victor Stinner | 18 March 2024, 13:54:45 UTC | Revert "gh-96844: Improve error message of list.remove (gh-106455)" (#116956) This reverts commit 217f47d6e5e56bca78b8556e910cd00890f6f84a. | 18 March 2024, 13:54:45 UTC |
2a4cbf1 | Jakub Stasiak | 18 March 2024, 12:57:00 UTC | GH-65056: Improve the IP address' is_global/is_private documentation (GH-113186) * GH-65056: Improve the IP address' is_global/is_private documentation It wasn't clear what the semantics of is_global/is_private are and, when one gets to the bottom of it, it's not quite so simple (hence the exceptions listed). Co-authored-by: Petr Viktorin <encukou@gmail.com> | 18 March 2024, 12:57:00 UTC |
e2fcaf1 | Erlend E. Aasland | 18 March 2024, 12:24:24 UTC | gh-115874: Don't use module state in teedataobject tp_dealloc (#116204) Co-authored-by: Brandt Bucher <brandtbucher@microsoft.com> | 18 March 2024, 12:24:24 UTC |
cd2ed91 | AN Long | 18 March 2024, 11:48:50 UTC | gh-115538: Emit warning when use bool as fd in _io.WindowsConsoleIO (GH-116925) | 18 March 2024, 11:48:50 UTC |
43c9d61 | Erlend E. Aasland | 18 March 2024, 09:49:45 UTC | CI: Pass environment variables directly to configure in JIT CI (#116156) Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> | 18 March 2024, 09:49:45 UTC |
762f489 | Erlend E. Aasland | 18 March 2024, 09:37:48 UTC | gh-116664: Ensure thread-safe dict access in _warnings (#116768) Replace _PyDict_GetItemWithError() with PyDict_GetItemRef(). | 18 March 2024, 09:37:48 UTC |
4e45c6c | Terry Jan Reedy | 18 March 2024, 09:31:13 UTC | gh-116881: Remove erroneous or redundant grammar NULL (GH-116885) In Lexical Analysis f-strings section, NULL in the description of 'literal character' means '\0'. In the format_spec grammar production, it is wrong with that meaning and redundant if instead interpreted as <nothing>. Remove it there. | 18 March 2024, 09:31:13 UTC |
3a99f5c | Hugo van Kemenade | 18 March 2024, 08:44:15 UTC | Bump GitHub Actions (#116944) | 18 March 2024, 08:44:15 UTC |
b3f0c15 | mpage | 18 March 2024, 08:40:16 UTC | gh-116915: Make `_thread._ThreadHandle` support GC (#116934) Even though it has no internal references to Python objects it still has a reference to its type by virtue of being a heap type. We need to provide a traverse function that visits the type, but we do not need to provide a clear function. | 18 March 2024, 08:40:16 UTC |
2982bdb | Victor Stinner | 17 March 2024, 17:59:02 UTC | gh-85283: Build _statistics extension with the limited C API (#116927) Argument Clinic now inlines _PyArg_CheckPositional() for the limited C API. The generated code should be as fast or even a little bit faster. | 17 March 2024, 17:59:02 UTC |
0634201 | Barney Gale | 17 March 2024, 17:09:35 UTC | GH-116377: Stop raising `ValueError` from `glob.translate()`. (#116378) Stop raising `ValueError` from `glob.translate()` when a `**` sub-string appears in a non-recursive pattern segment. This matches `glob.glob()` behaviour. | 17 March 2024, 17:09:35 UTC |
1cf0301 | Victor Stinner | 17 March 2024, 15:12:29 UTC | gh-85283: Build termios extension with the limited C API (#116928) | 17 March 2024, 15:12:29 UTC |
8e3c953 | Victor Stinner | 17 March 2024, 13:58:26 UTC | gh-73468: Add math.fma() function (#116667) Added new math.fma() function, wrapping C99's ``fma()`` operation: fused multiply-add function. Co-authored-by: Mark Dickinson <mdickinson@enthought.com> | 17 March 2024, 13:58:26 UTC |
b8d808d | Antoine Pitrou | 17 March 2024, 08:47:14 UTC | GH-112536: Add more TSan tests (#116911) These may all exercise some non-trivial aspects of thread synchronization. | 17 March 2024, 08:47:14 UTC |
649857a | John Sloboda | 17 March 2024, 04:58:42 UTC | gh-85287: Change codecs to raise precise UnicodeEncodeError and UnicodeDecodeError (#113674) Co-authored-by: Inada Naoki <songofacandy@gmail.com> | 17 March 2024, 04:58:42 UTC |
c514a97 | Carol Willing | 17 March 2024, 00:01:56 UTC | Update titles and subtitles on landing page template (#116914) * Update titles and subtitles on landing page template * address review from gvanrossum * Edits from hugovk review * Change word order back. Down the road we should split license and history | 17 March 2024, 00:01:56 UTC |
5e0a070 | Victor Stinner | 16 March 2024, 20:37:11 UTC | gh-116809: Restore removed _PyErr_ChainExceptions1() function (#116900) | 16 March 2024, 20:37:11 UTC |
259dbc4 | Hugo van Kemenade | 16 March 2024, 17:59:42 UTC | CI: Process stale issues four times per day (#116857) | 16 March 2024, 17:59:42 UTC |
1a33513 | Michael Droettboom | 16 March 2024, 15:10:43 UTC | gh-116879: Add new optimizer pystats to tables (GH-116880) | 16 March 2024, 15:10:43 UTC |
bee7e29 | Donghee Na | 16 March 2024, 14:52:44 UTC | gh-112536: Add more TSAN tests (#116896) --------- Co-authored-by: Antoine Pitrou <antoine@python.org> | 16 March 2024, 14:52:44 UTC |
744c077 | jnchen | 16 March 2024, 13:01:45 UTC | gh-116851: Remove "from ctypes import *" from a ctypes example (GH-116852) It is confusing, because libc is not imported from ctypes, but defined in previous examples, which already contain the import. | 16 March 2024, 13:01:45 UTC |
33da0e8 | mpage | 16 March 2024, 12:56:30 UTC | gh-114271: Fix race in `Thread.join()` (#114839) There is a race between when `Thread._tstate_lock` is released[^1] in `Thread._wait_for_tstate_lock()` and when `Thread._stop()` asserts[^2] that it is unlocked. Consider the following execution involving threads A, B, and C: 1. A starts. 2. B joins A, blocking on its `_tstate_lock`. 3. C joins A, blocking on its `_tstate_lock`. 4. A finishes and releases its `_tstate_lock`. 5. B acquires A's `_tstate_lock` in `_wait_for_tstate_lock()`, releases it, but is swapped out before calling `_stop()`. 6. C is scheduled, acquires A's `_tstate_lock` in `_wait_for_tstate_lock()` but is swapped out before releasing it. 7. B is scheduled, calls `_stop()`, which asserts that A's `_tstate_lock` is not held. However, C holds it, so the assertion fails. The race can be reproduced[^3] by inserting sleeps at the appropriate points in the threading code. To do so, run the `repro_join_race.py` from the linked repo. There are two main parts to this PR: 1. `_tstate_lock` is replaced with an event that is attached to `PyThreadState`. The event is set by the runtime prior to the thread being cleared (in the same place that `_tstate_lock` was released). `Thread.join()` blocks waiting for the event to be set. 2. `_PyInterpreterState_WaitForThreads()` provides the ability to wait for all non-daemon threads to exit. To do so, an `is_daemon` predicate was added to `PyThreadState`. This field is set each time a thread is created. `threading._shutdown()` now calls into `_PyInterpreterState_WaitForThreads()` instead of waiting on `_tstate_lock`s. [^1]: https://github.com/python/cpython/blob/441affc9e7f419ef0b68f734505fa2f79fe653c7/Lib/threading.py#L1201 [^2]: https://github.com/python/cpython/blob/441affc9e7f419ef0b68f734505fa2f79fe653c7/Lib/threading.py#L1115 [^3]: https://github.com/mpage/cpython/commit/81946532792f938cd6f6ab4c4ff92a4edf61314f --------- Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Antoine Pitrou <antoine@python.org> | 16 March 2024, 12:56:30 UTC |
86bc40d | Antoine Pitrou | 16 March 2024, 11:55:46 UTC | gh-112536: Add test_threading to TSAN tests (#116898) | 16 March 2024, 11:55:46 UTC |
c61cb50 | Serhiy Storchaka | 16 March 2024, 11:31:19 UTC | gh-116484: Fix collisions between Checkbutton and ttk.Checkbutton default names (GH-116495) Change automatically generated tkinter.Checkbutton widget names to avoid collisions with automatically generated tkinter.ttk.Checkbutton widget names within the same parent widget. | 16 March 2024, 11:31:19 UTC |
1069a46 | Serhiy Storchaka | 16 March 2024, 10:36:05 UTC | gh-116764: Fix regressions in urllib.parse.parse_qsl() (GH-116801) * Restore support of None and other false values. * Raise TypeError for non-zero integers and non-empty sequences. The regressions were introduced in gh-74668 (bdba8ef42b15e651dc23374a08143cc2b4c4657d). | 16 March 2024, 10:36:05 UTC |
269051d | Serhiy Storchaka | 16 March 2024, 10:29:42 UTC | gh-90535: Fix support of interval>1 in logging.TimedRotatingFileHandler (GH-116220) Fix support of interval values > 1 in logging.TimedRotatingFileHandler for when='MIDNIGHT' and when='Wx'. | 16 March 2024, 10:29:42 UTC |
20578a1 | Donghee Na | 16 March 2024, 10:10:37 UTC | gh-112536: Add TSAN builds on Github Actions (#116872) | 16 March 2024, 10:10:37 UTC |
a1c4923 | Nikita Sobolev | 16 March 2024, 08:54:42 UTC | gh-116858: Add `@cpython_only` to several tests in `test_cmd_line` (#116859) | 16 March 2024, 08:54:42 UTC |
0c7dc49 | Raymond Hettinger | 15 March 2024, 19:02:10 UTC | Minor kde() docstring nit: make presentation order match the function signature (#116876) | 15 March 2024, 19:02:10 UTC |
950667e | Mark Shannon | 15 March 2024, 17:16:30 UTC | GH-115802: Reduce the size of _INIT_CALL_PY_EXACT_ARGS. (GH-116856) | 15 March 2024, 17:16:30 UTC |
280de36 | Dino Viehland | 15 March 2024, 16:35:29 UTC | gh-116868: Avoid locking in PyType_IsSubtype (#116829) Make PyType_IsSubType not acquire lock | 15 March 2024, 16:35:29 UTC |
ebf29b3 | Donghee Na | 15 March 2024, 16:07:16 UTC | gh-112536: Add --tsan test for reasonable TSAN execution times. (gh-116601) | 15 March 2024, 16:07:16 UTC |
1634986 | Nikita Sobolev | 15 March 2024, 15:47:46 UTC | gh-116782: Mention `__type_params__` in `inspect.getmembers` docs (#116783) Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> | 15 March 2024, 15:47:46 UTC |
8da83f3 | Donghee Na | 15 March 2024, 14:48:34 UTC | gh-116621: Specialize list.extend for dict keys/values (gh-116816) | 15 March 2024, 14:48:34 UTC |
59e30f4 | Tian Gao | 15 March 2024, 14:46:18 UTC | gh-116735: Use `MISSING` for `CALL` event if argument is absent (GH-116737) | 15 March 2024, 14:46:18 UTC |
d180b50 | Zackery Spytz | 15 March 2024, 14:38:13 UTC | gh-63283: IDNA prefix should be case insensitive (GH-17726) Any capitalization of "xn--" should be acceptable for the ACE prefix (see https://tools.ietf.org/html/rfc3490#section-5). Co-authored-by: Pepijn de Vos <pepijndevos@gmail.com> Co-authored-by: Erlend E. Aasland <erlend@python.org> Co-authored-by: Petr Viktorin <encukou@gmail.com> | 15 March 2024, 14:38:13 UTC |
ce2c996 | mpage | 15 March 2024, 13:58:40 UTC | gh-111926: Simplify proxy creation logic (#116844) Since 3.12, allocating a GC-able object cannot trigger GC. This allows us to simplify the logic for creating the canonical callback-less proxy object. | 15 March 2024, 13:58:40 UTC |