summaryrefslogtreecommitdiffstats
path: root/Python
Commit message (Collapse)AuthorAgeFilesLines
* gh-120838: Add _PyThreadState_WHENCE_FINI (gh-121010)Eric Snow2024-06-254-13/+15
| | | | | We also add _PyThreadState_NewBound() and drop _PyThreadState_SetWhence(). This change only affects internal API.
* GH-120982: Add stack check assertions to generated interpreter code (GH-120992)Mark Shannon2024-06-255-0/+430
|
* gh-120108: Fix deepcopying of AST trees with .parent attributes (#120114)Jelle Zijlstra2024-06-251-17/+14
|
* Fixes loop variables to be the same types as their limit (GH-120958)Steve Dower2024-06-247-15/+16
|
* GH-117062: Make _JUMP_TO_TOP a general absolute jump (GH-120854)Brandt Bucher2024-06-243-6/+7
|
* gh-120834: fix type of *_iframe field in _PyGenObject_HEAD declaration (#120835)Irit Katriel2024-06-246-18/+17
|
* gh-119344: Make critical section API public (#119353)Sam Gross2024-06-211-29/+77
| | | | | | | | | | This makes the following macros public as part of the non-limited C-API for locking a single object or two objects at once. * `Py_BEGIN_CRITICAL_SECTION(op)` / `Py_END_CRITICAL_SECTION()` * `Py_BEGIN_CRITICAL_SECTION2(a, b)` / `Py_END_CRITICAL_SECTION2()` The supporting functions and structs used by the macros are also exposed for cases where C macros are not available.
* gh-120811: Fix reference leak upon `_PyContext_Exit` failure (#120812)Peter2024-06-211-0/+1
| | | Co-authored-by: Kumar Aditya <kumaraditya@python.org>
* gh-113993: Allow interned strings to be mortal, and fix related issues ↵Petr Viktorin2024-06-219-34/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (GH-120520) * Add an InternalDocs file describing how interning should work and how to use it. * Add internal functions to *explicitly* request what kind of interning is done: - `_PyUnicode_InternMortal` - `_PyUnicode_InternImmortal` - `_PyUnicode_InternStatic` * Switch uses of `PyUnicode_InternInPlace` to those. * Disallow using `_Py_SetImmortal` on strings directly. You should use `_PyUnicode_InternImmortal` instead: - Strings should be interned before immortalization, otherwise you're possibly interning a immortalizing copy. - `_Py_SetImmortal` doesn't handle the `SSTATE_INTERNED_MORTAL` to `SSTATE_INTERNED_IMMORTAL` update, and those flags can't be changed in backports, as they are now part of public API and version-specific ABI. * Add private `_only_immortal` argument for `sys.getunicodeinternedsize`, used in refleak test machinery. * Make sure the statically allocated string singletons are unique. This means these sets are now disjoint: - `_Py_ID` - `_Py_STR` (including the empty string) - one-character latin-1 singletons Now, when you intern a singleton, that exact singleton will be interned. * Add a `_Py_LATIN1_CHR` macro, use it instead of `_Py_ID`/`_Py_STR` for one-character latin-1 singletons everywhere (including Clinic). * Intern `_Py_STR` singletons at startup. * For free-threaded builds, intern `_Py_LATIN1_CHR` singletons at startup. * Beef up the tests. Cover internal details (marked with `@cpython_only`). * Add lots of assertions Co-Authored-By: Eric Snow <ericsnowcurrently@gmail.com>
* gh-119182: Use public PyUnicodeWriter in contextvar_tp_repr() (#120809)Victor Stinner2024-06-201-32/+15
| | | | The public PyUnicodeWriter API enables overallocation by default and so is more efficient. It also makes the code simpler and shorter.
* gh-117511: Make PyMutex public in the non-limited API (#117731)Sam Gross2024-06-202-26/+28
|
* gh-98442: fix locations of with statement's cleanup instructions (#120763)Irit Katriel2024-06-201-1/+3
| | | gh-98442: fix location of with statement's cleanup instructions
* Fix typos in comments (#120481)Xie Yanbo2024-06-202-3/+3
|
* gh-120437: Fix `_CHECK_STACK_SPACE` optimization problems introduced in ↵Nadeshiko Manju2024-06-192-2/+0
| | | | | | gh-118322 (GH-120712) Co-authored-by: Ken Jin <kenjin4096@gmail.com>
* gh-120733: rename internal compiler functions according to naming convention ↵Irit Katriel2024-06-191-30/+23
| | | | (#120734)
* gh-120722: Set position on RETURN_VALUE in lambda (#120724)Jelle Zijlstra2024-06-191-1/+1
|
* gh-120726: Fix compiler warnings on is_core_module() (#120727)Kirill Podoprigora2024-06-192-4/+5
| | | | | Fix compiler warnings on is_core_module() and check_interpreter_whence(): only define them when assertions are built.
* gh-120367: fix bug where compiler detects redundant jump after pseudo op ↵Irit Katriel2024-06-181-1/+1
| | | | replacement (#120714)
* gh-119574: Add some missing environment variables to '--help-env'. (GH-120006)devdanzin2024-06-181-0/+17
|
* GH-120507: Lower the `BEFORE_WITH` and `BEFORE_ASYNC_WITH` instructions. ↵Mark Shannon2024-06-188-179/+141
| | | | | | | | | (#120640) * Remove BEFORE_WITH and BEFORE_ASYNC_WITH instructions. * Add LOAD_SPECIAL instruction * Reimplement `with` and `async with` statements using LOAD_SPECIAL
* gh-117657: Fix `__slots__` thread safety in free-threaded build (#119368)Daniele Parmeggiani2024-06-171-9/+33
| | | | Fix a race in `PyMember_GetOne` and `PyMember_SetOne` for `Py_T_OBJECT_EX`. These functions implement `__slots__` accesses for Python objects.
* gh-117657: Fix TSan reported data race on ioctl_works (#120175)Sam Gross2024-06-171-3/+5
|
* gh-115649: Copy the filename into main interpreter before intern in import.c ↵AN Long2024-06-171-1/+11
| | | | | (#120315) Co-authored-by: Kumar Aditya <kumaraditya@python.org>
* gh-119933: Improve ``SyntaxError`` message for invalid type parameters ↵Bénédikt Tran2024-06-171-26/+54
| | | | | expressions (#119976) Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
* GH-120619: Clean up `RETURN_VALUE` instruction (GH-120624)Mark Shannon2024-06-177-20/+26
| | | | | * Rename _POP_FRAME to _RETURN_VALUE as it returns a value as well as popping a frame. * Remove remaining _POP_FRAMEs
* gh-120367: fix removal of redundant NOPs and jumps after reordering hot-cold ↵Irit Katriel2024-06-171-12/+18
| | | | blocks (#120425)
* gh-83754: Use the Py_TYPE() macro (#120599)Victor Stinner2024-06-172-4/+4
| | | | Don't access directly PyObject.ob_type, but use the Py_TYPE() macro instead.
* gh-120568: fix file leak in PyUnstable_CopyPerfMapFile (#120569)Carson Radtke2024-06-161-4/+4
|
* gh-120526: Correct signature of map() builtin (GH-120528)Adam Williamson2024-06-151-1/+1
| | | | | map() requires at least one iterable arg. Signed-off-by: Adam Williamson <awilliam@redhat.com>
* gh-120161: Fix a Crash in the _datetime Module (gh-120182)Eric Snow2024-06-141-0/+1
| | | | | | | In gh-120009 I used an atexit hook to finalize the _datetime module's static types at interpreter shutdown. However, atexit hooks are executed very early in finalization, which is a problem in the few cases where a subclass of one of those static types is still alive until the final GC collection. The static builtin types don't have this probably because they are finalized toward the end, after the final GC collection. To avoid the problem for _datetime, I have applied a similar approach here. Also, credit goes to @mgorny and @neonene for the new tests. FYI, I would have liked to take a slightly cleaner approach with managed static types, but wanted to get a smaller fix in first for the sake of backporting. I'll circle back to the cleaner approach with a future change on the main branch.
* gh-117657: Fix some simple races in instrumentation.c (GH-120118)Ken Jin2024-06-131-2/+2
| | | * stop the world when setting local events
* gh-120343: Fix column offsets of multiline tokens in tokenize (#120391)Lysandros Nikolaou2024-06-121-4/+10
|
* gh-120400 :Support Linux perf profile to see Python calls on RISC-V ↵ixgbe002024-06-121-0/+8
| | | | | architecture (#120089) Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
* gh-120029: remove unused macros in ``symtable.c`` (#120222)Bénédikt Tran2024-06-121-1/+0
| | | | Co-authored-by: Carl Meyer <carl@oddbird.net> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
* gh-93691: fix too broad source locations of for statement iterators (#120330)Irit Katriel2024-06-121-0/+7
|
* gh-120385: Fix reference leak in symtable (#120386)Kirill Podoprigora2024-06-121-1/+3
| | | Decref 'new_ste' if symtable_visit_annotations() fails.
* gh-120343: Do not reset byte_col_offset_diff after multiline tokens (#120352)Lysandros Nikolaou2024-06-111-1/+6
| | | Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* gh-119180: PEP 649 compiler changes (#119361)Jelle Zijlstra2024-06-115-202/+368
|
* gh-119666: fix multiple class-scope comprehensions referencing __class__ ↵Carl Meyer2024-06-101-13/+10
| | | | (#120295)
* gh-119258: Eliminate Type Guards in Tier 2 Optimizer with Watcher (GH-119365)Saul Shanabrook2024-06-084-25/+107
| | | | | | | Co-authored-by: parmeggiani <parmeggiani@spaziodati.eu> Co-authored-by: dpdani <git@danieleparmeggiani.me> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Brandt Bucher <brandtbucher@microsoft.com> Co-authored-by: Ken Jin <kenjin@python.org>
* gh-120225: fix crash in compiler on empty block at end of exception handler ↵Irit Katriel2024-06-071-6/+2
| | | | (#120235)
* gh-93691: fix too broad source locations of with-statement instructions ↵Irit Katriel2024-06-071-3/+2
| | | | (#120125)
* gh-117657: Fix TSAN race involving import lock (#118523)Sam Gross2024-06-062-76/+49
| | | | | This adds a `_PyRecursiveMutex` type based on `PyMutex` and uses that for the import lock. This fixes some data races in the free-threaded build and generally simplifies the import lock code.
* gh-119786: move adaptive interpreter doc from Python to InternalsDoc (#120137)Irit Katriel2024-06-061-141/+0
|
* gh-117657: Fix race involving GC and heap initialization (#119923)Sam Gross2024-06-042-0/+6
| | | | | | | | | | | | The `_PyThreadState_Bind()` function is called before the first `PyEval_AcquireThread()` so it's not synchronized with the stop the world GC. We had a race where `gc_visit_heaps()` might visit a thread's heap while it's being initialized. Use a simple atomic int to avoid visiting heaps for threads that are not yet fully initialized (i.e., before `tstate_mimalloc_bind()` is called). The race was reproducible by running: `python Lib/test/test_importlib/partial/pool_in_threads.py`.
* Fix typos in documentation and comments (#119763)Xie Yanbo2024-06-047-9/+9
|
* gh-111499: Fix PYTHONMALLOCSTATS at Python exit (#120021)Victor Stinner2024-06-041-6/+6
| | | | Call _PyObject_DebugMallocStats() earlier in Py_FinalizeEx(), before the interpreter is deleted.
* gh-117398: Use Per-Interpreter State for the _datetime Static Types (gh-119929)Eric Snow2024-06-031-2/+2
| | | | | | | We make use of the same mechanism that we use for the static builtin types. This required a few tweaks. The relevant code could use some cleanup but I opted to avoid the significant churn in this change. I'll tackle that separately. This change is the final piece needed to make _datetime support multiple interpreters. I've updated the module slot accordingly.
* gh-117657: Fix race involving immortalizing objects (#119927)Sam Gross2024-06-033-13/+11
| | | | | | | | | The free-threaded build currently immortalizes objects that use deferred reference counting (see gh-117783). This typically happens once the first non-main thread is created, but the behavior can be suppressed for tests, in subinterpreters, or during a compile() call. This fixes a race condition involving the tracking of whether the behavior is suppressed.
* gh-117657: Avoid `sem_clockwait` in TSAN (#119915)Sam Gross2024-06-031-1/+1
| | | | The `sem_clockwait` function is not currently instrumented, which leads to false positives.