Mark Shannon
83d54fa876
GH-130296: Remove _PyOpcode_max_stack_effect
as it is no longer used (GH-131493)
2025-03-20 11:42:54 +00:00
Victor Stinner
b69da006a4
gh-131238: Remove includes from pycore_interp.h ( #131495 )
...
Remove also now unused includes in C files.
2025-03-20 11:35:23 +00:00
Victor Stinner
34c1ea3109
gh-111178: Fix function signatures for multiple tests ( #131496 )
2025-03-20 12:27:03 +01:00
Victor Stinner
486d537065
Fix Windows build warnings ( #131487 )
...
Fix the following warnings:
* Modules\_io\fileio.c(1296,13): unused variable 'self'
* Modules\_io\winconsoleio.c(334,9): unused variable 'fd_is_own'
* Modules\faulthandler.c(409,11): unused variable 'flags'
* Modules\posixmodule.c(5699,9): unused variable 'pathError'
* PC\winreg.c(2077,5): suggest braces around initialization of
subobject
* PC\winreg.c(34,13): unused variable 'errNotAHandle'
* Python\fileutils.c(132,12): result of comparison of constant
1114111 with expression of type 'wchar_t' (aka 'unsigned short') is
always false
* Python\fileutils.c(58,21): unused variable 'INCOMPLETE_CHARACTER'
* Python\sysmodule.c(2534,21): unused variable 'perf_map_state'
2025-03-20 12:03:20 +01:00
Kumar Aditya
39b37b0110
gh-128421: add critical section around traceback.tb_next
( #131322 )
2025-03-20 12:03:54 +05:30
Kumar Aditya
b12af0a48f
gh-131401: fix data races in exception handling ( #131447 )
2025-03-20 12:02:05 +05:30
Victor Stinner
20c5f969dd
gh-131238: Remove more includes from pycore_interp.h ( #131480 )
2025-03-19 23:01:32 +01:00
Yan Yanchii
75103d975c
gh-126835: Move constant tuple folding from ast_opt to CFG ( #130769 )
2025-03-19 20:59:55 +00:00
Diego Russo
8a33034d82
GH-130956: Only emit AArch64 trampolines for long jumps (GH-131041)
2025-03-19 12:19:21 -07:00
Victor Stinner
22706843e0
gh-131238: Remove many includes from pycore_interp.h ( #131472 )
2025-03-19 17:46:24 +00:00
Victor Stinner
5c44d7d99c
gh-130931: Add pycore_interpframe.h internal header ( #131249 )
...
Move _PyInterpreterFrame and associated functions
to a new pycore_interpframe.h header.
2025-03-19 18:17:44 +01:00
Victor Stinner
4b54031323
gh-131238: Remove pycore_runtime.h from pycore_pystate.h ( #131356 )
...
* Remove includes from pycore_pystate.h:
* pycore_runtime_structs.h
* pycore_runtime.h
* pycore_tstate.h
* pycore_interp.h
* Reorganize internal headers. Move _gc_thread_state from
pycore_interp_structs.h to pycore_tstate.h.
* Add 3 new header files to PCbuild/pythoncore.vcxproj.
2025-03-19 17:33:24 +01:00
Victor Stinner
0a54bd6dd7
gh-111178: Fix function signatures in legacy_tracing.c ( #131464 )
2025-03-19 16:54:41 +01:00
Victor Stinner
bbe5baad6c
gh-111178: Fix function signatures for test_types ( #131455 )
2025-03-19 13:46:17 +00:00
Kumar Aditya
74b87515a7
gh-131401: fix data race in _PyErr_Restore
( #131406 )
2025-03-19 14:35:47 +05:30
Irit Katriel
ffc2f1dd1c
gh-130080: implement PEP 765 ( #130087 )
2025-03-17 20:48:54 +00:00
Ken Jin
b2ed7a6d6a
gh-131281: Add include for pystats builds ( #131369 )
...
Add include to for pystats builds
2025-03-18 00:36:06 +08:00
Mark Shannon
a45f25361d
GH-131238: More refactoring of core header files (GH-131351)
...
Adds new pycore_stats.h header file to help break dependencies involving the pycore_code.h header.
2025-03-17 14:41:05 +00:00
Victor Stinner
978e37bb5f
gh-131238: Add explicit includes to pycore headers ( #131257 )
2025-03-17 12:32:43 +01:00
Victor Stinner
0453e494b6
gh-131238: Convert pycore_pystate.h static inline to functions ( #131352 )
...
Convert static inline functions to functions:
* _Py_IsMainThread()
* _PyInterpreterState_Main()
* _Py_IsMainInterpreterFinalizing()
* _Py_GetMainConfig()
2025-03-17 12:31:55 +01:00
Mark Shannon
a1aeec61c4
GH-131238: Core header refactor (GH-131250)
...
* Moves most structs in pycore_ header files into pycore_structs.h and pycore_runtime_structs.h
* Removes many cross-header dependencies
2025-03-17 09:19:04 +00:00
Chris Eibl
f104c19a94
GH-131296: fix clang-cl warning on Windows in pytime.c (GH-131297)
...
fix warning : integer literal is too large
to be represented in a signed integer type,
interpreting as unsigned [-Wimplicitly-unsigned-literal]
2025-03-15 11:41:34 -07:00
Xuanteng Huang
1821f8f10c
gh-131281: fix compile error due to BINARY_SUBSCR
(GH-131283)
...
* fix compile error due to `BINARY_SUBSCR`
* replace stat_inc with `BINARY_OP`
2025-03-15 23:38:46 +08:00
Yan Yanchii
55815a6474
gh-130480: Move duplicate LOAD_SMALL_INT
optimization from codegen to CFG ( #130481 )
2025-03-14 21:23:27 +00:00
Victor Stinner
a5776639c8
gh-111178: Fix function signatures to fix undefined behavior ( #131191 )
2025-03-14 09:52:15 +00:00
Victor Stinner
0ddfb5717f
gh-111178: Fix _PyLegacyEventHandler_Type deallocator ( #131193 )
...
Don't use PyObject_Free() as tp_dealloc to avoid an undefined
behavior. Instead, use the default deallocator which just calls
tp_free which is PyObject_Free().
2025-03-14 10:23:54 +01:00
Hood Chatham
f3e275f1a9
GH-130396: Work around for broken pthread_get_stackaddr_np
on Emscripten ( #131088 )
...
Implements a workaround implementation of `pthread_get_stackaddr_np` for Emscripten.
This will be replaced by an implementation that will be included in Emscripten 4.0.6.
2025-03-14 07:04:40 +08:00
Tomasz Pytel
c5abded099
gh-130382: add missing _PyReftracerTrack
to ceval Py_DECREF
( #130689 )
2025-03-13 12:31:49 -04:00
Irit Katriel
4242c2b8d0
gh-130080: move _Py_EnsureArrayLargeEnough to a separate header so it can be used outside of the compiler ( #130930 )
2025-03-13 16:02:58 +00:00
Victor Stinner
9a63138e09
gh-111178: Fix function signatures in misc files ( #131180 )
2025-03-13 16:55:08 +01:00
Russell Keith-Magee
dd6d24e9d2
gh-130940: Modify default behavior of PyConfig.use_system_logger
to enable on iOS ( #131172 )
...
Modify default behavior of use_system_log to enable on iOS.
2025-03-13 14:28:49 +08:00
Yan Yanchii
3618240624
gh-126835: Avoid creating unnecessary tuple when looking for constant sequence during constant folding ( #131054 )
2025-03-12 21:45:54 +00:00
Kumar Aditya
ea57ffa02e
gh-131141: fix data race in instrumentation while registering callback ( #131142 )
2025-03-13 00:11:52 +05:30
T. Wouters
de2f7da77d
gh-115999: Add free-threaded specialization for FOR_ITER ( #128798 )
...
Add free-threaded versions of existing specialization for FOR_ITER (list, tuples, fast range iterators and generators), without significantly affecting their thread-safety. (Iterating over shared lists/tuples/ranges should be fine like before. Reusing iterators between threads is not fine, like before. Sharing generators between threads is a recipe for significant crashes, like before.)
2025-03-12 16:21:46 +01:00
Stan Ulbrych
155c44b901
gh-81267: Correct time.sleep() error message ( #131055 )
2025-03-12 08:12:57 +00:00
Tian Gao
8b1edae93a
gh-122029: Do not unpack method for legacy tracing anymore ( #130898 )
2025-03-11 14:04:22 -04:00
Victor Stinner
9d759b63d8
gh-111178: Change Argument Clinic signature for METH_O ( #130682 )
...
Use "PyObject*" for METH_O functions to fix an undefined behavior.
2025-03-11 16:33:36 +01:00
Sam Gross
4162bc133b
gh-130396: Fix thread sanitizer crashes on stack overflow tests (gh-130966)
...
Thread sanitizer will often crash if a test uses more than half the
stack.
2025-03-11 10:33:23 -04:00
Max Bachmann
de8818ae23
gh-131082: Add missing guards for WIN32_LEAN_AND_MEAN ( #131044 )
...
* Add missing guards for WIN32_LEAN_AND_MEAN
* add missing whitespaces
2025-03-11 12:33:01 +01:00
Pablo Galindo Salgado
a931a8b324
gh-117174: Add a new route in linecache to fetch interactive source code ( #117500 )
2025-03-10 21:54:05 +00:00
Mark Shannon
be046ee6e0
GH-123044: Give the POP_TOP
after a case test a location in the body, not the pattern. (GH-130627)
2025-03-10 17:31:16 +00:00
Mark Shannon
2bef8ea8ea
GH-127705: Use _PyStackRef
s in the default build. (GH-127875)
2025-03-10 14:06:56 +00:00
Mark Shannon
89df62c120
GH-128534: Fix behavior of branch monitoring for async for
(GH-130847)
...
* Both branches in a pair now have a common source and are included in co_branches
2025-03-07 14:30:31 +00:00
Sam Gross
a025f27d94
gh-130920: Fix data race in STORE_SUBSCR_LIST_INT ( #130923 )
...
The write of the item to the list needs to use an atomic operation in
the free threading build.
Co-authored-by: Tomasz Pytel <tompytel@gmail.com>
2025-03-06 15:59:48 -05:00
Sam Gross
052cb717f5
gh-124878: Fix race conditions during interpreter finalization ( #130649 )
...
The PyThreadState field gains a reference count field to avoid
issues with PyThreadState being a dangling pointer to freed memory.
The refcount starts with a value of two: one reference is owned by the
interpreter's linked list of thread states and one reference is owned by
the OS thread. The reference count is decremented when the thread state
is removed from the interpreter's linked list and before the OS thread
calls `PyThread_hang_thread()`. The thread that decrements it to zero
frees the `PyThreadState` memory.
The `holds_gil` field is moved out of the `_status` bit field, to avoid
a data race where on thread calls `PyThreadState_Clear()`, modifying the
`_status` bit field while the OS thread reads `holds_gil` when
attempting to acquire the GIL.
The `PyThreadState.state` field now has `_Py_THREAD_SHUTTING_DOWN` as a
possible value. This corresponds to the `_PyThreadState_MustExit()`
check. This avoids race conditions in the free threading build when
checking `_PyThreadState_MustExit()`.
2025-03-06 10:38:34 -05:00
Sergey B Kirpichev
2352bd418a
gh-130860: Fix width calculation, when separators in fractional part (GH-130865)
...
This amends f39a07be47
2025-03-06 14:26:29 +02:00
Jamie Phan
10cdd7f91f
GH-130903: typo in optimizer DSL for _GUARD_BOTH_UNICODE ( #130904 )
...
Typo introduced in gh-118910.
2025-03-06 12:11:08 +01:00
Tomasz Pytel
aeb2327386
gh-130574: renumber RESUME opcode from 149 to 128 (GH-130685)
2025-03-06 08:59:36 +00:00
mpage
d7bb7c7817
gh-118331: Fix a couple of issues when list allocation fails ( #130811 )
...
* Fix use after free in list objects
Set the items pointer in the list object to NULL after the items array
is freed during list deallocation. Otherwise, we can end up with a list
object added to the free list that contains a pointer to an already-freed
items array.
* Mark `_PyList_FromStackRefStealOnSuccess` as escaping
I think technically it's not escaping, because the only object that
can be decrefed if allocation fails is an exact list, which cannot
execute arbitrary code when it is destroyed. However, this seems less
intrusive than trying to special cases objects in the assert in `_Py_Dealloc`
that checks for non-null stackpointers and shouldn't matter for performance.
2025-03-05 10:42:09 -08:00
Mark Shannon
78d50e91ff
GH-127705: better double free message. (GH-130785)
...
* Add location information when accessing already closed stackref
* Add #def option to track closed stackrefs to provide precise information for use after free and double frees.
2025-03-05 14:00:42 +00:00