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 )
...
Tests / Ubuntu SSL tests with OpenSSL (3.1.7, ubuntu-24.04) (push) Blocked by required conditions
Details
Tests / Ubuntu SSL tests with OpenSSL (3.2.3, ubuntu-24.04) (push) Blocked by required conditions
Details
Tests / Ubuntu SSL tests with OpenSSL (3.3.2, ubuntu-24.04) (push) Blocked by required conditions
Details
Tests / Ubuntu SSL tests with OpenSSL (3.4.0, ubuntu-24.04) (push) Blocked by required conditions
Details
Tests / Hypothesis tests on Ubuntu (push) Blocked by required conditions
Details
Tests / Address sanitizer (ubuntu-24.04) (push) Blocked by required conditions
Details
Tests / All required checks pass (push) Blocked by required conditions
Details
mypy / Run mypy on ${{ matrix.target }} (Lib/_pyrepl) (push) Successful in 14s
Details
mypy / Run mypy on ${{ matrix.target }} (Lib/test/libregrtest) (push) Successful in 13s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/build) (push) Successful in 11s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/cases_generator) (push) Successful in 12s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/clinic) (push) Successful in 11s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/jit) (push) Successful in 11s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/peg_generator) (push) Successful in 12s
Details
Lint / lint (push) Failing after 1m32s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/wasm) (push) Successful in 11s
Details
Tests / Change detection (push) Successful in 26m17s
Details
Tests / Docs (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (Win32, false, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (arm64, true, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (arm64, false, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (x64, false, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (x64, true, windows-latest) (push) Has been skipped
Details
Tests / Windows MSI${{ '' }} (arm64) (push) Has been skipped
Details
Tests / Windows MSI${{ '' }} (x64) (push) Has been skipped
Details
Tests / Windows MSI${{ '' }} (x86) (push) Has been skipped
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (true, ${{ github.repository_owner != 'python' }}, ghcr.io/cirruslabs/macos-runner:sonoma) (push) Failing after 24m9s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false, ${{ github.repository_owner != 'python' }}, macos-13) (push) Failing after 33m1s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (true, ${{ github.repository_owner != 'python' }}, macos-14) (push) Failing after 33m1s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false, ${{ github.repository_owner != 'python' }}, macos-14) (push) Failing after 33m3s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false, ${{ github.repository_owner != 'python' }}, ghcr.io/cirruslabs/macos-runner:sonoma) (push) Failing after 33m5s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, false, ubuntu-24.04-arm) (push) Failing after 26m22s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, false, ubuntu-24.04) (push) Failing after 38m7s
Details
Tests / WASI (push) Failing after 29m5s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (true, false, ubuntu-24.04) (push) Failing after 30m29s
Details
Tests / CIFuzz (address) (push) Has been skipped
Details
Tests / CIFuzz (memory) (push) Has been skipped
Details
Tests / CIFuzz (undefined) (push) Has been skipped
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, true, ubuntu-24.04) (push) Failing after 36m25s
Details
Tests / Cross build Linux (push) Successful in 7m48s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, true, ubuntu-24.04-arm) (push) Failing after 39m37s
Details
Tests / Thread sanitizer ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false) (push) Failing after 30m37s
Details
Tests / Thread sanitizer ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (true) (push) Successful in 49m39s
Details
Mark stale pull requests / stale (push) Has been skipped
Details
Tail calling interpreter / ${{ matrix.target }} (aarch64, 19, macos-14, aarch64-apple-darwin/clang) (push) Has been cancelled
Details
Tail calling interpreter / ${{ matrix.target }} (aarch64, 19, ubuntu-24.04-arm, aarch64-unknown-linux-gnu/gcc) (push) Has been cancelled
Details
Tail calling interpreter / ${{ matrix.target }} (x64, 19, windows-latest, x86_64-pc-windows-msvc/msvc) (push) Has been cancelled
Details
Tail calling interpreter / ${{ matrix.target }} (x86_64, 19, macos-13, x86_64-apple-darwin/clang) (push) Has been cancelled
Details
Tail calling interpreter / ${{ matrix.target }} (x86_64, 19, ubuntu-24.04, free-threading) (push) Has been cancelled
Details
Tail calling interpreter / ${{ matrix.target }} (x86_64, 19, ubuntu-24.04, x86_64-unknown-linux-gnu/gcc) (push) Has been cancelled
Details
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
Sam Gross
2f6e0e9f70
gh-130794: Process interpreter QSBR queue in _PyMem_AbandonDelayed. (gh-130808)
...
This avoids a case where the interpreter's queue of memory to be freed
could grow rapidly if there are many short lived threads.
2025-03-04 18:04:04 -05:00
Amit Lavon
691354ccb0
GH-130415: Narrow str to "" based on boolean tests (GH-130476)
2025-03-04 13:20:17 -08:00
Klaus117
c989e74446
GH-130415: Narrow int to 0 based on boolean tests (GH-130772)
2025-03-04 12:44:09 -08:00
Sergey Miryanov
3a7f17c7e2
gh-130790: Remove references about unicode's readiness from comments ( #130801 )
2025-03-03 19:18:09 +00:00
Bénédikt Tran
3146a25e97
gh-129173: refactor `PyCodec_BackslashReplaceErrors` into separate functions ( #129895 )
...
The logic of `PyCodec_BackslashReplaceErrors` is now split into separate functions,
each of which handling a specific exception type.
2025-03-03 13:58:15 +01:00
Bénédikt Tran
f693f84227
gh-129173: simplify `PyCodec_XMLCharRefReplaceErrors` logic ( #129894 )
...
Writing the decimal representation of a Unicode codepoint only requires to know the number of digits.
---------
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2025-03-03 11:43:22 +00:00
Ned Batchelder
efbc5929ca
docs: internal notes have moved, correct references ( #130762 )
2025-03-03 06:38:49 -05:00
Brandt Bucher
7afa476874
GH-130415: Use boolean guards to narrow types to values in the JIT (GH-130659)
2025-03-02 13:21:34 -08:00
Hugo Beauzée-Luyssen
214562ed4d
gh-130740: Move some `stdbool.h` includes after `Python.h` ( #130738 )
...
Move some `#include <stdbool.h>` after `#include "Python.h"` when `pyconfig.h` is not
included first and when we are in a platform-agnostic context. This is to avoid having
features defined by `stdbool.h` before those decided by `Python.h`.
2025-03-02 09:56:49 +00:00
Mark Shannon
54965f3fb2
GH-130296: Avoid stack transients in four instructions. (GH-130310)
...
* Combine _GUARD_GLOBALS_VERSION_PUSH_KEYS and _LOAD_GLOBAL_MODULE_FROM_KEYS into _LOAD_GLOBAL_MODULE
* Combine _GUARD_BUILTINS_VERSION_PUSH_KEYS and _LOAD_GLOBAL_BUILTINS_FROM_KEYS into _LOAD_GLOBAL_BUILTINS
* Combine _CHECK_ATTR_MODULE_PUSH_KEYS and _LOAD_ATTR_MODULE_FROM_KEYS into _LOAD_ATTR_MODULE
* Remove stack transient in LOAD_ATTR_WITH_HINT
2025-02-28 18:00:38 +00:00
Sam Gross
038e4d606b
gh-130605: Use relaxed atomics to set the GIL switch interval (gh-130654)
...
The interval may be concurrently read by a thread attempting to acquire
the GIL.
2025-02-28 09:27:18 -05:00
Hugo Beauzée-Luyssen
830f04b505
Postpone <stdbool.h> inclusion after Python.h ( #130641 )
...
Remove inclusions prior to Python.h.
<stdbool.h> will cause <features.h> to be included before Python.h can
define some macros to enable some additional features, causing multiple
types not to be defined down the line.
2025-02-28 10:09:27 +01:00
Petr Viktorin
fecf8bc8f2
gh-130595: Fix leak in WITH_EXCEPT_START error case (GH-130626)
...
Co-authored-by: Ken Jin <kenjin@python.org>
2025-02-28 08:58:50 +00:00
Sam Gross
7aeaa5af2c
gh-130091: Reorder `_PyThreadState_Attach` to avoid data race (gh-130092)
...
This moves `tstate_activate()` down to avoid a data race in the free
threading build on the `_PyRuntime`'s thread-local `autoTSSkey`. This
key is deleted during runtime finalization, which may happen
concurrently with a call to `_PyThreadState_Attach`.
The earlier `tstate_try/wait_attach` ensures that the thread is blocked
before it attempts to access the deleted `autoTSSkey`.
This fixes a TSAN reported data race in
`test_threading.test_import_from_another_thread`.
2025-02-27 13:57:19 -05:00
Sam Gross
d027787c8d
gh-130421: Fix data race on timebase initialization (gh-130592)
...
Windows and macOS require precomputing a "timebase" in order to convert
OS timestamps into nanoseconds. Retrieve and compute this value during
runtime initialization to avoid data races when accessing the time.
2025-02-27 13:27:54 +00:00
Mark Shannon
2a18e80695
GH-128534: Instrument branches for `async for` loops. (GH-130569)
2025-02-27 09:36:41 +00:00
Victor Stinner
05aba4e799
gh-111178: Fix function signatures in instruction_sequence.c ( #130591 )
2025-02-26 21:36:26 +01:00
Victor Stinner
1b635d86cd
gh-111178: Fix function signatures in symtable.c ( #130589 )
2025-02-26 21:35:24 +01:00
Dino Viehland
5c8e8704c3
gh-130595: Keep traceback alive for WITH_EXCEPT_START ( #130562 )
...
Keep traceback alive for WITH_EXCEPT_START
2025-02-26 10:41:26 -08:00
Serhiy Storchaka
0ef4ffeefd
gh-130163: Fix crashes related to PySys_GetObject() (GH-130503)
...
The use of PySys_GetObject() and _PySys_GetAttr(), which return a borrowed
reference, has been replaced by using one of the following functions, which
return a strong reference and distinguish a missing attribute from an error:
_PySys_GetOptionalAttr(), _PySys_GetOptionalAttrString(),
_PySys_GetRequiredAttr(), and _PySys_GetRequiredAttrString().
2025-02-25 23:04:27 +02:00
Tian Gao
c5f925c8c9
gh-122029: Move monitoring after method expand for CALL_KW (GH-130488)
2025-02-25 15:43:49 +00:00
Sergey B Kirpichev
f39a07be47
gh-87790: support thousands separators for formatting fractional part of floats ( #125304 )
...
```pycon
>>> f"{123_456.123_456:_._f}" # Whole and fractional
'123_456.123_456'
>>> f"{123_456.123_456:_f}" # Integer component only
'123_456.123456'
>>> f"{123_456.123_456:._f}" # Fractional component only
'123456.123_456'
>>> f"{123_456.123_456:.4_f}" # with precision
'123456.1_235'
```
2025-02-25 16:27:07 +01:00
Bénédikt Tran
fa6a8140dd
gh-129173: refactor `PyCodec_ReplaceErrors` into separate functions ( #129893 )
...
The logic of `PyCodec_ReplaceErrors` is now split into separate functions,
each of which handling a specific exception type.
2025-02-25 14:24:46 +01:00
Mark Shannon
014223649c
GH-130396: Use computed stack limits on linux (GH-130398)
...
* Implement C recursion protection with limit pointers for Linux, MacOS and Windows
* Remove calls to PyOS_CheckStack
* Add stack protection to parser
* Make tests more robust to low stacks
* Improve error messages for stack overflow
2025-02-25 09:24:48 +00:00
Petr Viktorin
ef29104f7d
GH-91079: Revert "GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)" for now (GH130413)
...
Revert "GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)" for now
Unfortunatlely, the change broke some buildbots.
This reverts commit 2498c22fa0
.
2025-02-24 11:16:08 +01:00
Łukasz Langa
72ea3c030a
gh-128627: Skip wasm-gc on iOS Safari where it's broken ( #130418 )
...
As of iOS 18.3.1, enabling wasm-gc breaks the interpreter. This disables the wasm-gc
trampoline on iOS.
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
2025-02-24 07:26:04 +08:00
Yan Yanchii
38642bff13
gh-126835: Move constant unaryop & binop folding to CFG ( #129550 )
2025-02-21 17:54:22 +00:00
Sam Gross
ca22147547
gh-111924: Fix data races when swapping allocators (gh-130287)
...
CPython current temporarily changes `PYMEM_DOMAIN_RAW` to the default
allocator during initialization and shutdown. The motivation is to
ensure that core runtime structures are allocated and freed using the
same allocator. However, modifying the current allocator changes global
state and is not thread-safe even with the GIL. Other threads may be
allocating or freeing objects use PYMEM_DOMAIN_RAW; they are not
required to hold the GIL to call PyMem_RawMalloc/PyMem_RawFree.
This adds new internal-only functions like `_PyMem_DefaultRawMalloc`
that aren't affected by calls to `PyMem_SetAllocator()`, so they're
appropriate for Python runtime initialization and finalization. Use
these calls in places where we previously swapped to the default raw
allocator.
2025-02-20 11:31:15 -05:00
Bénédikt Tran
e24a1ac17c
gh-129173: Use `_PyUnicodeError_GetParams` in `PyCodec_SurrogateEscapeErrors` (GH-129175)
2025-02-20 13:18:47 +00:00
Mark Shannon
2498c22fa0
GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)
...
* Implement C recursion protection with limit pointers
* Remove calls to PyOS_CheckStack
* Add stack protection to parser
* Make tests more robust to low stacks
* Improve error messages for stack overflow
2025-02-19 11:44:57 +00:00
Pablo Galindo Salgado
51d4bf1e0e
bpo-45325: Add a new 'p' parameter to Py_BuildValue to convert an integer into a Python bool ( #28634 )
2025-02-18 17:14:11 +00:00
Ken Jin
46ac85e4d9
gh-129989: Change Py_TAIL_CALL_INTERP ifndef to ! ( #130269 )
...
Change Py_TAIL_CALL_INTERP ifndef to !
2025-02-18 15:48:49 +00:00
Irit Katriel
c9b1bf302c
gh-130139: always check ast node type in ast.parse() with ast input ( #130140 )
2025-02-16 13:32:39 +00:00
Ken Jin
359c7dde3b
gh-129989: Properly disable tailcall interp in configure (GH-129991)
...
Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-02-16 03:01:24 +08:00
Bénédikt Tran
1775091dc1
gh-129173: Use `_PyUnicodeError_GetParams` in `PyCodec_SurrogatePassErrors` (GH-129134)
2025-02-14 18:34:32 +01:00
Yan Yanchii
334589f619
gh-126835: Set location for noped out instructions after constant folding in CFG. ( #130109 )
2025-02-14 14:15:08 +00:00
Sam Gross
451f291baa
gh-128130: Fix unhandled keyboard interrupt data race (gh-129975)
...
Use an atomic operation when setting
`_PyRuntime.signals.unhandled_keyboard_interrupt`. We now only clear the
variable at the start of `_PyRun_Main`, which is the same function where
we check it.
This avoids race conditions where previously another thread might call
`run_eval_code_obj()` and erroneously clear the unhandled keyboard
interrupt.
2025-02-13 12:29:03 -05:00
Sam Gross
0559339ccd
gh-130019: Fix data race in _PyType_AllocNoTrack (gh-130058)
...
The reference count fields, such as `ob_tid` and `ob_ref_shared`, may be
accessed concurrently in the free threading build by a `_Py_TryXGetRef`
or similar operation. The PyObject header fields will be initialized by
`_PyObject_Init`, so only call `memset()` to zero-initialize the remainder
of the allocation.
2025-02-13 11:50:45 -05:00
Yan Yanchii
140e69c4a8
gh-126835: Move const folding of lists & sets from ast_opt.c to flowgraph.c ( #130032 )
2025-02-13 12:11:07 +00:00
Sam Gross
e09442089e
gh-130030: Fix crash on 32-bit Linux with free threading (gh-130043)
...
The `gc_get_refs` assertion needs to be after we check the alive and
unreachable bits. Otherwise, `ob_tid` may store the actual thread id
instead of the computed `gc_refs`, which may trigger the assertion if
the `ob_tid` looks like a negative value.
Also fix a few type warnings on 32-bit systems.
2025-02-12 18:09:15 -05:00
Ken Jin
1b27f36eb0
gh-129819: Allow tier2/JIT and tailcall (GH-129820)
2025-02-13 02:18:36 +08:00
Brandt Bucher
11bb08e4ec
GH-129715: Don't project traces that return to an unknown caller (GH-130024)
2025-02-12 10:16:43 -08:00
Mark Shannon
72f56654d0
GH-128682: Account for escapes in `DECREF_INPUTS` (GH-129953)
...
* Handle escapes in DECREF_INPUTS
* Mark a few more functions as escaping
* Replace DECREF_INPUTS with PyStackRef_CLOSE where possible
2025-02-12 17:44:59 +00:00
Andrew Svetlov
469d2e416c
gh-129889: Support context manager protocol by contextvars.Token ( #129888 )
2025-02-12 12:32:58 +01:00
Stefano Rivera
e1b38ea82e
Update manpage environment variables and command line arguments ( #129623 )
...
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-02-12 13:00:35 +02:00
Michael Droettboom
00ec781877
gh-129244: Only remove the workaround when MSVC has the bugfix ( #130011 )
2025-02-11 14:49:42 -05:00
Ken Jin
5cdd6e5e75
gh-130004: Disable PGO for ceval.c on MSVC for default build (GH-130009)
...
Disable PGO for ceval.c on MSVC on default build
2025-02-12 01:13:05 +08:00
Ken Jin
247b50dec8
gh-130004: Revert commit 9e52e55
(GH-130005)
...
Revert commit 9e52e55
2025-02-11 23:23:58 +08:00
Yan Yanchii
91d9544112
gh-126835: Make CFG optimizer skip over NOP's when looking for const sequence construction ( #129703 )
...
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2025-02-09 18:00:41 +00:00
Bénédikt Tran
a56ead089c
gh-129173: Use `_PyUnicodeError_GetParams` in `PyCodec_NameReplaceErrors` (GH-129135)
2025-02-08 16:01:57 +01:00
Irit Katriel
a1417b211f
gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR ( #129700 )
2025-02-07 22:39:54 +00:00
Brandt Bucher
5fa7e1b7fd
GH-129715: Remove _DYNAMIC_EXIT (GH-129716)
2025-02-07 11:41:17 -08:00
Brandt Bucher
70e387c990
GH-129709: Clean up tier two (GH-129710)
2025-02-07 09:52:49 -08:00
Brandt Bucher
fbaa6c8ff0
GH-129763: Remove the LLTRACE macro (GH-129764)
2025-02-07 08:49:51 -08:00
Ken Jin
175844713a
gh-128563: Move assignment of opcode into ifdef (GH-129803)
2025-02-07 21:11:57 +08:00
sobolevn
ae132edc29
gh-129766: Fix crash on calling `warnings._release_lock` with no lock ( #129771 )
2025-02-07 12:59:52 +03:00
Donghee Na
b184abf074
gh-129533: Update PyGC_Enable/Disable/IsEnabled to use atomic operation (gh-129563)
2025-02-07 07:41:13 +09:00
Kumar Aditya
0d68b14a0d
gh-128002: use per threads tasks linked list in asyncio ( #128869 )
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-02-06 19:51:07 +01:00
Peter Hawkins
b4ff8b22b3
gh-129732: Fix race on `shared->array` in qsbr code under free-threading (gh-129738)
...
The read of `shared->array` should happen under the lock to avoid a race.
2025-02-06 18:49:29 +00:00
Ken Jin
cb640b659e
gh-128563: A new tail-calling interpreter (GH-128718)
...
Co-authored-by: Garrett Gu <garrettgu777@gmail.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-02-06 23:21:57 +08:00
Neil Schemenauer
cdcacec79f
gh-129201: Use prefetch in GC mark alive phase. (gh-129203)
...
For the free-threaded version of the cyclic GC, restructure the "mark alive" phase to use software prefetch instructions. This gives a speedup in most cases when the number of objects is large enough. The prefetching is enabled conditionally based on the number of long-lived objects the GC finds.
2025-02-05 11:38:30 -08:00
Victor Stinner
a25042e6d2
gh-129354: Use PyErr_FormatUnraisable() function ( #129523 )
...
Replace PyErr_WriteUnraisable() with PyErr_FormatUnraisable().
Update tests:
* test_coroutines
* test_exceptions
* test_generators
* test_struct
2025-02-05 10:31:59 +00:00
Victor Stinner
dc804ffb2f
gh-128911: Use PyImport_ImportModuleAttr() function ( #129657 )
...
* Replace PyImport_ImportModule() + PyObject_GetAttr() with
PyImport_ImportModuleAttr().
* Replace PyImport_ImportModule() + PyObject_GetAttrString() with
PyImport_ImportModuleAttrString().
2025-02-05 11:03:58 +01:00
Mark Shannon
96ff4c2486
GH-128682: Mark two more macros as escaping. (GH-129645)
...
Expand out SETLOCAL so that code generator can see the decref. Mark Py_CLEAR as escaping
2025-02-04 14:00:51 +00:00
Mark Shannon
2effea4dab
GH-128682: Spill the stack pointer in labels, as well as instructions (GH-129618)
2025-02-04 12:18:31 +00:00
Yan Yanchii
d3c54f3788
gh-126835: Fix reference leak in `Python/flowgrapc.::optimize_if_const_subscr` ( #129634 )
2025-02-04 10:38:06 +00:00
Yan Yanchii
0664c1af9b
gh-126835: Move constant subscript folding to CFG ( #129568 )
...
Move folding of constant subscription from AST optimizer to CFG.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2025-02-04 10:10:55 +02:00
Mark Shannon
75b628adeb
GH-128563: Generate `opcode = ...` in instructions that need `opcode` (GH-129608)
...
* Remove support for GO_TO_INSTRUCTION
2025-02-03 15:09:21 +00:00
Mark Shannon
808071b994
GH-128682: Make `PyStackRef_CLOSE` escaping. (GH-129404)
2025-02-03 12:41:32 +00:00
Diego Russo
a29a9c0f38
GH-129231: Group executable JIT code in memory (GH-129232)
2025-02-02 15:19:55 -08:00
Diego Russo
567394517a
GH-128842: Collect JIT memory stats (GH-128941)
2025-02-02 15:17:53 -08:00
Yan Yanchii
e6c76b947b
GH-128872: Remove unused argument from _PyCode_Quicken (GH-128873)
...
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
2025-02-02 15:09:30 -08:00
Kirill Podoprigora
7d0521d5fc
gh-126835: Move optimization of constant sequence creation from codegen to CFG ( #129426 )
...
Codegen phase has an optimization that transforms
```
LOAD_CONST x
LOAD_CONST y
LOAD_CONXT z
BUILD_LIST/BUILD_SET (3)
```
->
```
BUILD_LIST/BUILD_SET (0)
LOAD_CONST (x, y, z)
LIST_EXTEND/SET_UPDATE 1
```
This optimization has now been moved to CFG phase to make #128802 work.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
Co-authored-by: Yan Yanchii <yyanchiy@gmail.com>
2025-02-01 11:39:44 +00:00
Mark Shannon
54f74b80ae
GH-128563: Move some labels, to simplify implementing tailcalling interpreter. (GH-129525)
2025-01-31 17:13:20 +00:00
Peter Bierma
9ba281d871
gh-128509: Add `sys._is_immortal` for identifying immortal objects ( #128510 )
...
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2025-01-31 15:27:08 +00:00
Valery Fedorenko
fad36bf382
gh-126108: Fix potential null pointer dereference in `PySys_AddWarnOptionUnicode` ( #126118 )
2025-01-31 20:06:30 +05:30
Victor Stinner
3447f4a56a
gh-129354: Use PyErr_FormatUnraisable() function ( #129514 )
...
Replace PyErr_WriteUnraisable() with PyErr_FormatUnraisable().
2025-01-31 14:20:35 +01:00
Mark Shannon
c3ae5c9e4a
GH-128563: Simplify recursion check in `_PyEval_EvalFrameDefault` (GH-129481)
...
Simplify recursion check in _PyEval_EvalFrameDefault
2025-01-31 12:12:24 +00:00
Victor Stinner
95504f429e
gh-129354: Fix grammar in PyErr_FormatUnraisable() ( #129475 )
...
Replace "on verb+ing" with "while verb+ing".
2025-01-31 09:45:35 +01:00
Victor Stinner
4e47e05045
gh-129354: Use PyErr_FormatUnraisable() function ( #129435 )
...
Replace PyErr_WriteUnraisable() with PyErr_FormatUnraisable().
2025-01-30 16:09:38 +01:00
Victor Stinner
3bebe46d34
gh-128911: Add PyImport_ImportModuleAttr() function ( #128912 )
...
Add PyImport_ImportModuleAttr() and
PyImport_ImportModuleAttrString() functions.
* Add unit tests.
* Replace _PyImport_GetModuleAttr()
with PyImport_ImportModuleAttr().
* Replace _PyImport_GetModuleAttrString()
with PyImport_ImportModuleAttrString().
* Remove "pycore_import.h" includes, no longer needed.
2025-01-30 11:17:29 +00:00
Sam Gross
5ff2fbc026
gh-129236: Use `stackpointer` in free threaded GC ( #129240 )
...
The stack pointers in interpreter frames are nearly always valid now, so
use them when visiting each thread's frame. For now, don't collect
objects with deferred references in the rare case that we see a frame
with a NULL stack pointer.
2025-01-29 10:40:51 -05:00
Irit Katriel
4815131910
gh-100239: specialize bitwise logical binary ops on ints ( #128927 )
2025-01-29 09:28:21 +00:00
Brandt Bucher
828b27680f
GH-126599: Remove the PyOptimizer API (GH-129194)
2025-01-28 16:10:51 -08:00
T. Wouters
5c930a26fb
gh-115999: Enable free-threaded specialization of LOAD_CONST ( #129365 )
...
Enable free-threaded specialization of LOAD_CONST.
2025-01-29 01:07:56 +01:00
Mark Shannon
75b4962157
GH-128914: Remove all but one conditional stack effects (GH-129226)
...
* Remove all 'if (0)' and 'if (1)' conditional stack effects
* Use array instead of conditional for BUILD_SLICE args
* Refactor LOAD_GLOBAL to use a common conditional uop
* Remove conditional stack effects from LOAD_ATTR specializations
* Replace conditional stack effects in LOAD_ATTR with a 0 or 1 sized array.
* Remove conditional stack effects from CALL_FUNCTION_EX
2025-01-27 16:24:48 +00:00
Bénédikt Tran
ced296d2c0
gh-111178: fix UBSan failures in `Python/traceback.c` (GH-128259)
2025-01-27 15:07:39 +01:00
Ken Jin
87fb8b198c
gh-128563: Move labels in ceval.c to bytecodes.c (GH-129112)
2025-01-27 18:30:20 +08:00
Irit Katriel
c39ae8922b
gh-128799: Add frame of except* to traceback when wrapping a naked exception ( #128971 )
2025-01-25 13:00:23 +00:00
Michael Droettboom
9e52e553f4
gh-129244: Remove workaround for MSVC compiler crash ( #129263 )
...
* Remove compiler workaround
* Remote _Py_USING_PGO
2025-01-25 07:56:13 -05:00
Chris Eibl
8fecb9fa0b
Remove unused DPRINTF in ceval.c (GH-129282)
...
remove unused DPRINTF in ceval.c
2025-01-25 18:33:26 +08:00
Victor Stinner
fc6bc1e4e3
gh-129185: Simplify PyTraceMalloc_Track() ( #129256 )
...
Since tracemalloc uses PyMutex, it becomes safe to use TABLES_LOCK()
even after _PyTraceMalloc_Fini(): remove the "pre-check" in
PyTraceMalloc_Track() and PyTraceMalloc_Untrack().
PyTraceMalloc_Untrack() no longer needs to acquire the GIL.
_PyTraceMalloc_Fini() can be called earlier during Python
finalization.
2025-01-24 14:29:36 +01:00
Victor Stinner
c005ea4951
gh-129185: Use PyMutex in tracemalloc ( #129246 )
2025-01-24 11:25:24 +01:00
Bénédikt Tran
36bb229933
gh-129173: Use `_PyUnicodeError_GetParams` in `PyCodec_IgnoreErrors` ( #129174 )
...
We also cleanup `PyCodec_StrictErrors` and the error message rendered
when an object of incorrect type is passed to codec error handlers.
2025-01-24 11:25:03 +01:00
Bénédikt Tran
25a614a502
gh-126004: Fix positions handling in `codecs.backslashreplace_errors` ( #127676 )
...
This fixes how `PyCodec_BackslashReplaceErrors` handles the `start` and `end`
attributes of `UnicodeError` objects via the `_PyUnicodeError_GetParams` helper.
2025-01-23 14:28:33 +01:00
Victor Stinner
e579cdb21e
gh-129185: Remove internal TRACE_RAW_MALLOC macro ( #129218 )
...
Always build tracemalloc with PyMem_RawMalloc() hooks.
2025-01-23 13:49:35 +01:00
Victor Stinner
46c7e13c05
gh-129185: Fix PyTraceMalloc_Untrack() at Python exit ( #129191 )
...
Support calling PyTraceMalloc_Track() and PyTraceMalloc_Untrack()
during late Python finalization.
* Call _PyTraceMalloc_Fini() later in Python finalization.
* Test also PyTraceMalloc_Untrack() without the GIL
* PyTraceMalloc_Untrack() now gets the GIL.
* Test also PyTraceMalloc_Untrack() in test_tracemalloc_track_race().
2025-01-23 12:07:34 +01:00
Bénédikt Tran
225296cd5b
gh-126004: Fix positions handling in `codecs.replace_errors` ( #127674 )
...
This fixes how `PyCodec_ReplaceErrors` handles the `start` and `end` attributes
of `UnicodeError` objects via the `_PyUnicodeError_GetParams` helper.
2025-01-23 11:44:18 +01:00
Bénédikt Tran
70dcc847df
gh-126004: Fix positions handling in `codecs.xmlcharrefreplace_errors` ( #127675 )
...
This fixes how `PyCodec_XMLCharRefReplaceErrors` handles the `start` and `end`
attributes of `UnicodeError` objects via the `_PyUnicodeError_GetParams` helper.
2025-01-23 11:42:38 +01:00
Sam Gross
a10f99375e
Revert "GH-128914: Remove conditional stack effects from `bytecodes.c` and the code generators (GH-128918)" (GH-129202)
...
The commit introduced a ~2.5-3% regression in the free threading build.
This reverts commit ab61d3f430
.
2025-01-23 09:26:25 +00:00
Sergey B Kirpichev
d7d066c3ab
gh-127936, PEP 757: Convert marshal module to use import/export API for ints ( #128530 )
...
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-01-23 02:54:23 +00:00
Victor Stinner
0093a31273
gh-119182: Use public PyUnicodeWriter in Python-ast.c ( #129209 )
...
Replace the private _PyUnicodeWriter API with the public
PyUnicodeWriter API.
Use PyUnicodeWriter_WriteRepr() in ast_repr_list().
2025-01-23 00:57:37 +00:00
Victor Stinner
8eb9e76b5b
gh-119182: Use public PyUnicodeWriter in ast_unparse.c ( #129208 )
...
Replace the private _PyUnicodeWriter API with the public
PyUnicodeWriter API.
* Add append_char() function.
* Add APPEND_CHAR() and APPEND_CHAR_FINISH() macros.
* Replace APPEND_STR() and APPEND_STR_FINISH() of single character
with APPEND_CHAR() and APPEND_CHAR_FINISH().
2025-01-23 01:44:43 +01:00
Hood Chatham
960936fe90
gh-128627: Emscripten: Fix address calculation for wasm-gc trampoline ( #128782 )
...
Modifies the memory calculation to divide the entire memory address by 4, not just the base address.
2025-01-23 08:02:04 +08:00
Yury Selivanov
188598851d
GH-91048: Add utils for capturing async call stack for asyncio programs and enable profiling ( #124640 )
...
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Savannah Ostrowski <savannahostrowski@gmail.com>
Co-authored-by: Jacob Coffee <jacob@z7x.org>
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2025-01-22 17:25:29 +01:00
Victor Stinner
9012fa741d
gh-128863: Deprecate private C API functions ( #128864 )
...
Deprecate private C API functions:
* _PyBytes_Join()
* _PyDict_GetItemStringWithError()
* _PyDict_Pop()
* _PyThreadState_UncheckedGet()
* _PyUnicode_AsString()
* _Py_HashPointer()
* _Py_fopen_obj()
Replace _Py_HashPointer() with Py_HashPointer().
Remove references to deprecated functions.
2025-01-22 11:04:19 +00:00
Mark Shannon
470a0a68eb
GH-128682: Change a couple of functions to only steal references on success. (GH-129132)
...
Change PyTuple_FromStackRefSteal and PyList_FromStackRefSteal to only steal on success to avoid escaping
2025-01-22 10:51:37 +00:00
Ken Jin
86c1a60d5a
gh-128563: Move GO_TO_INSTRUCTION and PREDICT to cases generator (GH-129115)
2025-01-22 09:22:25 +08:00
Ken Jin
5809b25909
gh-128563: Move lltrace into the frame struct (GH-129113)
2025-01-21 22:17:15 +08:00
Victor Stinner
31f149d5b3
gh-128679: Use _PyThreadState_GET() in tracemalloc.c ( #129126 )
...
Replace uncommon PyGILState_GetThisThreadState() with common
_PyThreadState_GET().
2025-01-21 14:43:31 +01:00
Victor Stinner
01de4af3e1
gh-126925: Make PyConfig.use_system_logger read-only ( #129124 )
...
The variable is only used once during early Python initialization, it
doesn't make sense to modify it at runtime.
2025-01-21 12:02:38 +01:00
Mark Shannon
f5b6356a11
GH-128563: Add new frame owner type for interpreter entry frames (GH-129078)
...
Add new frame owner type for interpreter entry frames
2025-01-21 10:15:02 +00:00
Mark Shannon
7239da7559
GH-127953: Make line number lookup O(1) regardless of the size of the code object (GH-128350)
2025-01-21 09:33:23 +00:00
Mark Shannon
ab61d3f430
GH-128914: Remove conditional stack effects from `bytecodes.c` and the code generators (GH-128918)
2025-01-20 17:09:23 +00:00
Mark Shannon
f0f7b978be
GH-128939: Refactor JIT optimize structs (GH-128940)
2025-01-20 15:49:15 +00:00
Victor Stinner
8ceb6cb117
gh-129033: Remove _PyInterpreterState_SetConfig() function ( #129048 )
...
Remove _PyInterpreterState_GetConfigCopy() and
_PyInterpreterState_SetConfig() private functions. PEP 741 "Python
Configuration C API" added a better public C API: PyConfig_Get() and
PyConfig_Set().
2025-01-20 16:31:33 +01:00
Erlend E. Aasland
537296cdcd
gh-111178: Generate correct signature for most self converters ( #128447 )
2025-01-20 12:40:18 +01:00
Peter Bierma
4d0a6595a0
gh-128360: Add `_Py_AssertHoldsTstate` as assertion for holding a thread state ( #128361 )
...
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2025-01-20 17:04:35 +05:30
Victor Stinner
07c3518ffb
gh-129033: Remove _Py_InitializeMain() function ( #129034 )
...
Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
2025-01-20 10:03:22 +00:00
Kirill Podoprigora
6c52ada551
gh-100239: Handle NaN and zero division in guards for `BINARY_OP_EXTEND` ( #128963 )
...
Co-authored-by: Tomas R. <tomas.roun8@gmail.com>
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2025-01-19 11:02:49 +00:00
mpage
13c4def692
gh-128955: Fix goto if tlbc creation fails when throwing into a generator ( #128957 )
...
We don't have the correct copy of the bytecode and can't update next_instr
appropriately, so just unwind.
2025-01-17 12:53:29 -08:00
Sam Gross
d66c08aa75
gh-128923: Use zero to indicate unassigned unique id ( #128925 )
...
In the free threading build, the per thread reference counting uses a
unique id for some objects to index into the local reference count
table. Use 0 instead of -1 to indicate that the id is not assigned. This
avoids bugs where zero-initialized heap type objects look like they have
a unique id assigned.
2025-01-17 16:42:27 +01:00
Xuanteng Huang
b44ff6d0df
GH-126599: Remove the "counter" optimizer/executor (GH-126853)
2025-01-16 15:57:04 -08:00
Irit Katriel
3893a92d95
gh-100239: specialize long tail of binary operations ( #128722 )
2025-01-16 15:22:13 +00:00
Victor Stinner
3193cb5ef8
gh-128679: Fix tracemalloc.stop() race conditions ( #128893 )
...
tracemalloc_alloc(), tracemalloc_realloc(), tracemalloc_free(),
_PyTraceMalloc_TraceRef() and _PyTraceMalloc_GetMemory() now check
'tracemalloc_config.tracing' after calling TABLES_LOCK().
_PyTraceMalloc_TraceRef() now always returns 0.
2025-01-16 13:53:18 +01:00
Victor Stinner
36c5e3bcc2
gh-128679: Redesign tracemalloc locking ( #128888 )
...
* Use TABLES_LOCK() to protect 'tracemalloc_config.tracing'.
* Hold TABLES_LOCK() longer while accessing tables.
* tracemalloc_realloc() and tracemalloc_free() no longer
remove the trace on reentrant call.
* _PyTraceMalloc_Stop() unregisters _PyTraceMalloc_TraceRef().
* _PyTraceMalloc_GetTraces() sets the reentrant flag.
* tracemalloc_clear_traces_unlocked() sets the reentrant flag.
2025-01-15 20:22:44 +00:00
Neil Schemenauer
080f444a58
gh-128807: Add marking phase for free-threaded cyclic GC (gh-128808)
2025-01-15 11:27:28 -08:00
mpage
b5ee0258bf
gh-115999: Specialize `LOAD_ATTR` for instance and class receivers in free-threaded builds ( #128164 )
...
Finish specialization for LOAD_ATTR in the free-threaded build by adding support for class and instance receivers.
2025-01-14 11:56:11 -08:00
Neil Schemenauer
1c13c56a34
gh-128384: Add locking to warnings.py. (gh-128386)
...
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2025-01-14 11:43:42 -08:00
Mark Shannon
f49a1df6f3
GH-128682: Convert explicit loops closing arrays into `DECREF_INPUTS`. (GH-128822)
...
* Mark Py_DECREF and Py_XDECREF as escaping
* Remove explicit loops for clearing array inputs
2025-01-14 15:08:56 +00:00
Peter Bierma
bf64a582f0
gh-128400: Only show the current thread in `Py_FatalError` on the free-threaded build ( #128758 )
2025-01-13 20:06:54 +05:30
Mark Shannon
517dc65ffc
GH-128682: Stronger checking of `PyStackRef_CLOSE` and `DEAD`. (GH-128683)
2025-01-13 12:37:48 +00:00
Mark Shannon
ddd959987c
GH-128685: Specialize (rather than quicken) LOAD_CONST into LOAD_CONST_[IM]MORTAL (GH-128708)
2025-01-13 10:30:28 +00:00
Hood Chatham
d0ecbdd838
gh-128627: Emscripten: Use wasm-gc based call adaptor if available ( #128628 )
...
Replaces the trampoline mechanism in Emscripten with an implementation that uses a
recently added feature of wasm-gc instead of JS type reflection, when that feature is
available.
2025-01-13 07:09:39 +08:00
Peter Bierma
f6c61bf2d7
gh-128717: Stop-the-world when setting the recursion limit ( #128741 )
2025-01-12 18:34:30 +05:30
9cel
3a570c6d58
Make the Python CLI error message style more consistent (GH-128129)
2025-01-11 11:17:35 +02:00
Bénédikt Tran
28ffdc5702
gh-111178: fix UBSan failures in `Python/bltinmodule.c` (GH-128235)
...
* fix UBSan failures for `filterobject`
* fix UBSan failures for `mapobject`
* fix UBSan failures for `zipobject`
2025-01-10 11:51:24 +01:00
Petr Viktorin
1439b81928
gh-128629: Add Py_PACK_VERSION and Py_PACK_FULL_VERSION (GH-128630)
2025-01-09 11:10:28 +01:00
Brandt Bucher
004f9fd1f2
Remove unnecessary LIST_TO_TUPLE conversions (GH-126558)
2025-01-08 09:00:11 -08:00
Bénédikt Tran
1da0901894
gh-111178: fix UBSan failures in `Python/context.c` (GH-128242)
...
* fix UBSan failures for `PyContext`
* fix UBSan failures for `PyContextVar`
* fix UBSan failures for `PyContextToken`
* fix UBSan failures for `_PyContextTokenMissing`
2025-01-08 14:52:27 +01:00
Bénédikt Tran
c22302ecea
gh-111178: fix UBSan failures in `Python/hamt.c` (GH-128247)
...
* fix UBSan failures for `PyHamtObject`
* fix UBSan failures for `PyHamtNode_Array`
* fix UBSan failures for `PyHamtNode_Collision`
* fix UBSan failures for `PyHamtNode_Bitmap`
2025-01-08 14:50:40 +01:00
Brandt Bucher
65ae3d5a73
GH-127809: Fix the JIT's understanding of ** (GH-127844)
2025-01-07 17:25:48 -08:00
T. Wouters
8f93dd8a8f
gh-115999: Add free-threaded specialization for COMPARE_OP ( #126410 )
...
Add free-threaded specialization for COMPARE_OP, and tests for COMPARE_OP specialization in general.
Co-authored-by: Donghee Na <donghee.na92@gmail.com>
2025-01-07 06:41:01 -08:00
Russell Keith-Magee
e837a1f71e
gh-128146: Exclude os/log.h import on older macOS versions. ( #128165 )
...
Reworks the handling of Apple system log handling to account for older macOS
versions that don't provide os-log.
2025-01-07 13:12:58 +08:00
Mark Shannon
2434fd2d50
GH-128533: Add `NOT_TAKEN` instruction after bytecode optimization. (GH-128554)
2025-01-06 22:01:07 +00:00
Mark Shannon
f826beca0c
GH-128375: Better instrument for `FOR_ITER` (GH-128445)
2025-01-06 17:54:47 +00:00
Victor Stinner
f89e5e20cb
gh-127350: Add Py_fopen() and Py_fclose() functions ( #127821 )
2025-01-06 12:43:09 +00:00
Anders Kaseorg
a626f9a67b
Remove asserts that confuse `enum _framestate` with `enum _frameowner` (GH-124148)
...
The `owner` field of `_PyInterpreterFrame` is supposed to be a member of
`enum _frameowner`, but `FRAME_CLEARED` is a member of `enum _framestate`.
At present, it happens that `FRAME_CLEARED` is not numerically equal to any
member of `enum _frameowner`, but that could change in the future. The code
that incorrectly assigned `owner = FRAME_CLEARED` was deleted in commit
a53cc3f494
(GH-116687). Remove the incorrect
checks for `owner != FRAME_CLEARED` as well.
2025-01-02 16:55:33 +00:00
Kumar Aditya
e389d6c650
gh-128277: make globals variables thread safe in socket module ( #128286 )
2024-12-31 19:10:06 +05:30
Ken Jin
7ef4907412
gh-128262: Allow specialization of calls to classes with __slots__ (GH-128263)
2024-12-31 12:24:17 +08:00
Yan Yanchii
fe4dd07a84
gh-119786: Mention `InternalDocs/interpreter.md` instead of non-existing `adaptive.md` ( #128329 )
...
`Python/specialize.c`: Mention `InternalDocs/interpreter.md` instead of non-existing `adaptive.md`
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2024-12-30 18:38:09 +00:00
Jelle Zijlstra
3480124321
gh-119180: Set the name of the param to __annotate__ to "format" ( #124730 )
2024-12-30 08:19:38 -08:00