summaryrefslogtreecommitdiffstats
path: root/Python
Commit message (Collapse)AuthorAgeFilesLines
* gh-121404: extract compiler_lookup_arg out of compiler_make_closure (#122181)Irit Katriel2024-07-241-41/+49
|
* GH-118093: Remove invalidated executors from side exits (GH-121885)Brandt Bucher2024-07-243-27/+26
|
* gh-122029: Log call events in sys.setprofile when it's a method with c ↵Tian Gao2024-07-231-0/+13
| | | | | function (GH-122072) Log call events in sys.setprofile when it is a method with a C function.
* gh-119180: Add `annotationlib` module to support PEP 649 (#119891)Jelle Zijlstra2024-07-231-0/+1
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-121637: Syntax error for optimized-away incorrect await (#121656)Jelle Zijlstra2024-07-222-30/+53
| | | Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* gh-121404: move calculation of module start location from compiler_body up ↵Irit Katriel2024-07-221-20/+28
| | | | to compiler_codegen (#122127)
* gh-100240: Use a consistent implementation for freelists (#121934)Sam Gross2024-07-226-104/+13
| | | | | | | | This combines and updates our freelist handling to use a consistent implementation. Objects in the freelist are linked together using the first word of memory block. If configured with freelists disabled, these operations are essentially no-ops.
* gh-120973: Fix thread-safety issues with `threading.local` (#121655)mpage2024-07-191-0/+3
| | | | | | This is a small refactoring to the current design that allows us to avoid manually iterating over threads. This should also fix gh-118490.
* gh-121905: Consistently use "floating-point" instead of "floating point" ↵Serhiy Storchaka2024-07-191-2/+2
| | | | (GH-121907)
* GH-118093: Add tier two support to several instructions (GH-121884)Brandt Bucher2024-07-187-82/+311
|
* GH-121784: Generate an error during code gen if a variable is marked ↵Mark Shannon2024-07-183-146/+137
| | | | | | | | | | | | `unused`, but is used and thus cached in a prior uop. (#121788) * Reject uop definitions that declare values as 'unused' that are already cached by prior uops * Track which variables are defined and only load from memory when needed * Support explicit `flush` in macro definitions. * Make sure stack is flushed in where needed.
* GH-120024: Use pointer for stack pointer (GH-121923)Mark Shannon2024-07-182-10/+14
|
* gh-121621: Move asyncio_running_loop to private struct (#121939)Sam Gross2024-07-171-2/+2
| | | | This avoids changing the ABI and keeps the field in the private struct.
* GH-121583: Remove dependency from pystats.h to internal header file (GH-121587)Michael Droettboom2024-07-161-0/+4
| | | Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* gh-118934: Make PyEval_GetLocals return borrowed reference (#119769)Tian Gao2024-07-161-1/+32
| | | Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
* gh-121621: Move asyncio running loop to thread state (GH-121695)Ken Jin2024-07-161-0/+4
|
* gh-120317: Lock around global state in the tokenize module (#120318)Lysandros Nikolaou2024-07-161-43/+72
| | | Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
* gh-121814: Only check f_trace_opcodes if Python frame exists (#121818)Tian Gao2024-07-151-1/+1
| | | Co-authored-by: Matt Wozniski <godlygeek@gmail.com>
* gh-121794: Don't set `ob_tid` to zero in fast-path dealloc (#121799)Sam Gross2024-07-151-11/+54
| | | | | | | | | | | | We should maintain the invariant that a zero `ob_tid` implies the refcount fields are merged. * Move the assignment in `_Py_MergeZeroLocalRefcount` to immediately before the refcount merge. * Update `_PyTrash_thread_destroy_chain` to set `ob_ref_shared` to `_Py_REF_MERGED` when setting `ob_tid` to zero. Also check this invariant with assertions in the GC in debug builds. That uncovered a bug when running out of memory during GC.
* gh-121546: Disable contextvar caching on free-threading build (GH-121740)Ken Jin2024-07-151-0/+14
|
* gh-118297: Make Sure All Pending Calls Run in _Py_FinishPendingCalls() ↵Eric Snow2024-07-151-6/+28
| | | | (gh-118298)
* gh-121698 Emscripten: Use updated WebAssembly type reflection proposal ↵Hood Chatham2024-07-141-2/+12
| | | | (GH-121699)
* gh-121657: Display correct error message for yield from outside of a ↵Gregor2024-07-131-1/+1
| | | | | | function (GH-121680) Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* gh-121153: Fix some errors with use of _PyLong_CompactValue() (GH-121154)Serhiy Storchaka2024-07-131-2/+2
| | | | | | * The result has type Py_ssize_t, not intptr_t. * Type cast between unsigned and signdet integer types should be explicit. * Downcasting should be explicit. * Fix integer overflow check in sum().
* gh-121332: Make AST node constructor check _attributes instead of hardcoding ↵Jelle Zijlstra2024-07-111-14/+25
| | | | attributes (#121334)
* gh-121554: remove unnecessary internal functions in compile.c (#121555)Irit Katriel2024-07-101-48/+0
| | | Co-authored-by: Erlend E. Aasland <erlend@python.org>
* gh-121404: remove some accesses to compiler internals from codegen functions ↵Irit Katriel2024-07-101-101/+120
| | | | (#121538)
* gh-121547: deduplicate the code of const_cache update functions (#121548)Irit Katriel2024-07-101-25/+22
|
* gh-121110: Fix Extension Module Tests Under Py_TRACE_REFS Builds (gh-121503)Eric Snow2024-07-081-19/+43
| | | The change in gh-118157 (b2cd54a) should have also updated clear_singlephase_extension() but didn't. We fix that here. Note that clear_singlephase_extension() (AKA _PyImport_ClearExtension()) is only used in tests.
* gh-121404: remove direct accesses to u_private from codegen functions (#121500)Irit Katriel2024-07-081-27/+42
|
* gh-121368: Fix seq lock memory ordering in _PyType_Lookup (#121388)Sam Gross2024-07-081-11/+15
| | | | | | | | | The `_PySeqLock_EndRead` function needs an acquire fence to ensure that the load of the sequence happens after any loads within the read side critical section. The missing fence can trigger bugs on macOS arm64. Additionally, we need a release fence in `_PySeqLock_LockWrite` to ensure that the sequence update is visible before any modifications to the cache entry.
* GH-121012: Set index to -1 when list iterators become exhausted in tier 2 ↵Mark Shannon2024-07-082-3/+9
| | | | (GH-121483)
* gh-121338: Remove #pragma optimize (#121340)Michael Droettboom2024-07-081-10/+0
|
* gh-121149: improve accuracy of builtin sum() for complex inputs (gh-121176)Sergey B Kirpichev2024-07-051-26/+105
|
* gh-121390: tracemalloc: Fix tracebacks memory leak (#121391)Josh Brobst2024-07-051-1/+1
| | | | | | The tracemalloc_tracebacks hash table has traceback keys and NULL values, but its destructors do not reflect this -- key_destroy_func is NULL while value_destroy_func is raw_free. Swap these to free the traceback keys instead.
* gh-121272: move async for/with validation from compiler to symtable (#121361)Irit Katriel2024-07-042-13/+22
|
* gh-121352: use _Py_SourceLocation in symtable (#121353)Irit Katriel2024-07-041-127/+68
|
* gh-121141: add support for `copy.replace` to AST nodes (#121162)Bénédikt Tran2024-07-041-0/+279
|
* gh-121272: set ste_coroutine during symtable construction (#121297)Irit Katriel2024-07-032-3/+15
| | | compiler no longer modifies the symtable after this.
* gh-117139: Add _PyTuple_FromStackRefSteal and use it (#121244)Sam Gross2024-07-024-32/+4
| | | Avoids the extra conversion from stack refs to PyObjects.
* gh-121272: move __future__ import validation from compiler to symtable (#121273)Irit Katriel2024-07-022-16/+24
|
* GH-116017: Get rid of _COLD_EXITs (GH-120960)Brandt Bucher2024-07-017-183/+121
|
* gh-121199: Use _Py__has_attribute() in timemodule.c (#121203)Victor Stinner2024-07-011-1/+1
| | | | | Use the _Py__has_attribute() macro in timemodule.c and bootstrap_hash.c to fix a build error on old GCC versions (GCC 4.8.5 on s390x).
* gh-121163: Add "all" as an valid alias for "always" in ↵Kirill Podoprigora2024-06-301-2/+2
| | | | | | warnings.simplefilter() (#121164) Add support for ``all`` as an valid alias for ``always`` in ``warnings.simplefilter()`` and ``warnings.filterswarnings()``.
* gh-117139: Fix a few wrong steals in bytecodes.c (GH-121127)Ken Jin2024-06-284-33/+33
| | | Fix a few wrong steals in bytecodes.c
* gh-120837: Update _Py_DumpExtensionModules to be async-signal-safe (gh-121051)Donghee Na2024-06-271-2/+36
|
* gh-121082: Fix build failure when the developer use `--enable-pystats` ↵Nadeshiko Manju2024-06-271-2/+3
| | | | | | | | arguments in configuration command after #118450 (#121083) Signed-off-by: Manjusaka <me@manjusaka.me> Co-authored-by: Ken Jin <kenjin4096@gmail.com>
* gh-121040: Use __attribute__((fallthrough)) (#121044)Victor Stinner2024-06-2713-55/+56
| | | | | | | | | | | | | Fix warnings when using -Wimplicit-fallthrough compiler flag. Annotate explicitly "fall through" switch cases with a new _Py_FALLTHROUGH macro which uses __attribute__((fallthrough)) if available. Replace "fall through" comments with _Py_FALLTHROUGH. Add _Py__has_attribute() macro. No longer define __has_attribute() macro if it's not defined. Move also _Py__has_builtin() at the top of pyport.h. Co-Authored-By: Nikita Sobolev <mail@sobolevn.me>
* gh-113433: Automatically Clean Up Subinterpreters in Py_Finalize() (gh-121060)Eric Snow2024-06-261-9/+147
| | | This change makes things a little less painful for some users. It also fixes a failing assert (gh-120765), by making sure all subinterpreters are destroyed before the main interpreter. As part of that, we make sure Py_Finalize() always runs with the main interpreter active.
* gh-117139: Convert the evaluation stack to stack refs (#118450)Ken Jin2024-06-269-3482/+4811
| | | | | | | | | | | | | | | | | This PR sets up tagged pointers for CPython. The general idea is to create a separate struct _PyStackRef for everything on the evaluation stack to store the bits. This forces the C compiler to warn us if we try to cast things or pull things out of the struct directly. Only for free threading: We tag the low bit if something is deferred - that means we skip incref and decref operations on it. This behavior may change in the future if Mark's plans to defer all objects in the interpreter loop pans out. This implies a strict stack reference discipline is required. ALL incref and decref operations on stackrefs must use the stackref variants. It is unsafe to untag something then do normal incref/decref ops on it. The new incref and decref variants are called dup and close. They mimic a "handle" API operating on these stackrefs. Please read Include/internal/pycore_stackref.h for more information! --------- Co-authored-by: Mark Shannon <9448417+markshannon@users.noreply.github.com>