Commit Graph

8767 Commits

Author SHA1 Message Date
Eric Snow 94b4fcd806 gh-132775: Add _PyCode_GetVarCounts() (gh-133128)
This helper is useful in a variety of ways, including in demonstrating how the different counts relate to one another.

It will be used in a later change to help identify if a function is "stateless", meaning it doesn't have any free vars or globals.

Note that a majority of this change is tests.
2025-04-30 18:19:20 +00:00
Mark Shannon 44e4c479fb GH-124715: Move trashcan mechanism into Py_Dealloc (GH-132280) 2025-04-30 11:37:53 +01:00
Lysandros Nikolaou 60202609a2 gh-132661: Implement PEP 750 (#132662)
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Wingy <git@wingysam.xyz>
Co-authored-by: Koudai Aono <koxudaxi@gmail.com>
Co-authored-by: Dave Peck <davepeck@gmail.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Co-authored-by: Paul Everitt <pauleveritt@me.com>
Co-authored-by: sobolevn <mail@sobolevn.me>
2025-04-30 11:46:41 +02:00
Shantanu 7e8b153fef gh-116436: Improve error message when TypeError occurs during dict update (#116443) 2025-04-29 22:18:06 -07:00
Mark Shannon ccf1b0b1c1 GH-132508: Use tagged integers on the evaluation stack for the last instruction offset (GH-132545) 2025-04-29 18:00:35 +01:00
Victor Stinner 02cd6d7097 gh-130317: Fix strict aliasing in PyFloat_Pack8() (#133150)
* Fix strict aliasing in PyFloat_Pack8() and PyFloat_Pack4().
* Fix _testcapi.float_set_snan() on x86 (32-bit).
2025-04-29 14:27:50 +00:00
Neil Schemenauer eecafc3380 Revert gh-127266: avoid data races when updating type slots (gh-131174) (gh-133129)
This is triggering deadlocks in test_opcache.  See GH-133130 for stack trace.
2025-04-28 23:38:29 -07:00
Eric Snow 96a7fb93a8 gh-132775: Add _PyCode_ReturnsOnlyNone() (gh-132981)
The function indicates whether or not the function has a return statement.

This is used by a later change related treating some functions like scripts.
2025-04-28 20:12:52 -06:00
Donghee Na 75cbb8d89e gh-132070: Use _PyObject_IsUniquelyReferenced in unicodeobject (gh-133039)
---------

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-04-29 09:48:53 +09:00
Neil Schemenauer e414a2d81c gh-127266: avoid data races when updating type slots (gh-131174)
In the free-threaded build, avoid data races caused by updating type slots
or type flags after the type was initially created.  For those (typically
rare) cases, use the stop-the-world mechanism.  Remove the use of atomics
when reading or writing type flags.  The use of atomics is not sufficient to
avoid races (since flags are sometimes read without a lock and without
atomics) and are no longer required.
2025-04-28 20:28:44 +00:00
Neil Schemenauer 31d1342de9 gh-132942: Fix races in type lookup cache (gh-133032)
Two races related to the type lookup cache, when used in the
free-threaded build.  This caused test_opcache to sometimes fail (as
well as other hard to re-produce failures).
2025-04-28 11:52:08 -07:00
Eric Snow c17238251f gh-132775: Add _PyModule_GetFilenameObject() and _PyModule_GetFilenameUTF8() (gh-132979)
They are derived from the existing `PyModule_GetFilenameObject().

They are used by a later change related to pickle and handling __main__.
2025-04-28 12:41:32 -06:00
Bénédikt Tran a99bfaa53c gh-133073: avoid NULL + 0 arithmetic in list_extend_* functions (#133074) 2025-04-28 15:59:09 +02:00
Sergey B Kirpichev 6157135a8d gh-130317: Fix PyFloat_Pack/Unpack[24] for NaN's with payload (#130452)
Co-authored-by: Victor Stinner <vstinner@python.org>
2025-04-28 15:23:26 +02:00
Jelle Zijlstra 922049b613 gh-130907: Treat all module-level annotations as conditional (#131550) 2025-04-28 06:10:28 -07:00
Serhiy Storchaka 6677c2c165 gh-132987: Support __index__() for unsigned integers in Argument Clinic (GH-133011) 2025-04-28 11:02:18 +03:00
Eric Snow 2a28b21a51 gh-132776: Revert Moving memoryview XIData Code to memoryobject.c (gh-132960)
This is a partial revert of gh-132821.  It resolves the refleak introduced by that PR.
2025-04-25 16:43:50 +00:00
Stan Ulbrych f6fb498c97 gh-132798: Schedule removal of PyUnicode_AsDecoded/Encoded functions for 3.15 (#132799)
Co-authored-by: Victor Stinner <vstinner@python.org>
2025-04-25 15:07:41 +02:00
Eric Snow e54e828852 gh-132776: Cleanup for XIBufferViewType (gh-132821)
* add notes
* rename XIBufferViewObject to xibufferview
* move memoryview XIData code to memoryobject.c
2025-04-24 18:25:29 -06:00
Victor Stinner 926ff69f3f gh-132825: Fix typo in dict_unhashable_type() name (#132847) 2025-04-23 18:54:13 +02:00
Victor Stinner 426449d983 gh-132825: Enhance unhashable error messages for dict and set (#132828) 2025-04-23 17:10:09 +02:00
Victor Stinner dc3e9638c2 gh-132713: Fix typing.Union[index] race condition (#132802)
Add union_init_parameters() helper function. Use a critical section
to initialize the 'parameters' member.
2025-04-23 15:45:42 +02:00
Victor Stinner de9deb7ca7 gh-132713: Simplify list_repr_impl() (#132811) 2025-04-23 08:59:30 +02:00
Victor Stinner a4ea80d523 gh-132713: Fix repr(list) race condition (#132801)
Hold a strong reference to the item while calling repr(item).
2025-04-22 22:09:35 +02:00
Pablo Galindo Salgado bf3a0a1c0f gh-132449: Improve syntax error messages for keywords with typos (#132450)
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-04-22 11:01:55 +02:00
Peter Bierma fa70bf8593 gh-132747: Fix NULL dereference when calling a method's __get__ manually (#132772) 2025-04-21 14:09:34 -07:00
Sam Gross da53660f35 gh-131586: Avoid refcount contention in context managers (gh-131851)
This avoid reference count contention in the free threading build
when calling special methods like `__enter__` and `__exit__`.
2025-04-21 15:54:25 -04:00
Sergey B Kirpichev 95800fe6e7 Correct _PyLong_Frexp() description in comments (GH-132716)
This amends d08c788822, now this function always successful.
2025-04-19 07:42:20 +00:00
Kumar Aditya 4c3d187d9f gh-126366: fix thread safety of dict key iterator (#132693) 2025-04-18 21:43:49 +05:30
Pieter Eendebak e77d6784e7 gh-132657: Avoid locking in frozenset.__contains__ (#132659) 2025-04-18 20:20:29 +05:30
Bénédikt Tran 379352620c gh-132097: use a macro for semantically casting function pointers (#132406) 2025-04-18 12:24:34 +02:00
Chris Eibl 80295a8f9b GH-131296: fix clang-cl warning on Windows in Objects/longobject.c for 32bit builds (#131604) 2025-04-18 10:45:30 +02:00
Jon Crall fc0ec29889 gh-103997: Automatically dedent the argument to "-c" (#103998)
Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com>
Co-authored-by: Kirill Podoprigora <80244920+Eclips4@users.noreply.github.com>
Co-authored-by: Inada Naoki <songofacandy@gmail.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-04-18 17:39:30 +09:00
Tomasz Pytel a23ed8b379 gh-132284: Don't wrap base PyCFunction slots on class creation if not overridden (#132329) 2025-04-17 18:08:59 +01:00
Sergey Miryanov e42bda9441 gh-132042: Do not lookup tp_dict each time to speedup class creation (#132619) 2025-04-17 12:04:42 +02:00
Serhiy Storchaka 62ff86fa55 gh-130104: Call __rpow__ in ternary pow() if necessary (GH-130251)
Previously it was only called in binary pow() and the binary
power operator.
2025-04-16 18:32:41 +03:00
sobolevn b6c552f9e6 gh-132176: Fix crash on type() when tuple subclass passed as bases (#132212)
Co-authored-by: Victor Stinner <vstinner@python.org>
2025-04-15 14:13:51 +03:00
Bénédikt Tran a81232c769 gh-132399: fix invalid function signatures on the free-threaded build (#132400) 2025-04-12 07:46:33 +00:00
Jelle Zijlstra 07b8d3117f gh-132261: Store annotations at hidden internal keys in the class dict (#132345) 2025-04-10 21:13:26 -07:00
sobolevn 254110356d gh-132285: Fix that __annotate__ is not deleted when __annotations__ is deleted (#132286) 2025-04-09 10:36:08 -07:00
Ken Jin bd3aa0b9f7 gh-126703: Fix possible use after free in pycfunction freelist (GH-132319) 2025-04-09 22:49:33 +08:00
Kumar Aditya ed99e28d5b gh-132213: use relaxed atomics for set hash (#132215) 2025-04-07 21:59:24 +05:30
Jelle Zijlstra 9a6b702f3a dictobject.c: Fix incorrect function name in errors (#132193) 2025-04-07 07:48:55 -07:00
Pieter Eendebak dff8bcfa3c gh-126703: Add freelist for range and range_iter objects (GH-128619) 2025-04-07 04:40:52 +08:00
Pieter Eendebak 29772b0647 gh-126703: Add PyCFunction freelist (GH-128692) 2025-04-05 23:51:05 +08:00
Kumar Aditya 76f6b5e64a gh-132013: use relaxed atomics in hash of frozenset (#132014)
Use relaxed atomics in hash of `frozenset` to fix TSAN warning.
2025-04-02 20:01:05 +05:30
mpage 053c285f6b gh-130704: Strength reduce LOAD_FAST{_LOAD_FAST} (#130708)
Optimize `LOAD_FAST` opcodes into faster versions that load borrowed references onto the operand stack when we can prove that the lifetime of the local outlives the lifetime of the temporary that is loaded onto the stack.
2025-04-01 10:18:42 -07:00
Bénédikt Tran edbf7fb129 gh-111178: remove redundant casts for functions with correct signatures (#131673) 2025-04-01 17:18:11 +02:00
Chris Eibl a175d64e30 GH-129149: Add fast path for medium-sized integers in PyLong_From* functions (#131211)
Add a fast path for medium-sized integers in `PyLong_FromInt{32,64}` and `PyLong_FromUInt{32,64}`.
2025-03-30 10:12:42 +02:00
Dino Viehland 2984ff9e51 gh-130373: Avoid locking in _LOAD_ATTR_WITH_HINT (#130372)
Avoid locking in _LOAD_ATTR_WITH_HINT
2025-03-28 15:16:41 -07:00