summaryrefslogtreecommitdiffstats
path: root/Python
Commit message (Collapse)AuthorAgeFilesLines
...
* gh-121404: compiler_annassign --> codegen_annassign (#123245)Irit Katriel2024-08-231-63/+100
|
* GH-123040: Specialize shadowed `LOAD_ATTR`. (GH-123219)Mark Shannon2024-08-234-138/+261
|
* gh-123083: Fix a potential use-after-free in ``STORE_ATTR_WITH_HINT`` ↵Donghee Na2024-08-223-18/+21
| | | | (gh-123092)
* gh-121404: remove redundant c_nestlevel. more compiler abstractions. more ↵Irit Katriel2024-08-221-118/+111
| | | | macro usage consistency (#123225)
* GH-123197: Only count an instruction as deferred if it hasn't deopted first. ↵Mark Shannon2024-08-223-30/+31
| | | | | (GH-123222) Only count an instruction as deferred if hasn't deopted first.
* GH-118093: Specialize calls to non-vectorcall classes as ↵Brandt Bucher2024-08-221-5/+1
| | | | | `CALL_NON_PY_GENERAL` (GH-123212) Specialize classes without vectorcall as CALL_NON_PY_GENERAL
* gh-123142: Fix too wide source locations in tracebacks of exceptions from ↵Irit Katriel2024-08-211-2/+3
| | | | broken iterables in comprehensions (#123173)
* GH-115776: Allow any fixed sized object to have inline values (GH-123192)Mark Shannon2024-08-218-31/+50
|
* gh-121404: split fblock handling into compiler_* and codegen_* parts (#123199)Irit Katriel2024-08-211-15/+24
|
* GH-123197: Increment correct stat for CALL_KW (GH-123200)Mark Shannon2024-08-212-2/+2
|
* GH-123185: Check for `NULL` after calling `_PyEvalFramePushAndInit` (GH-123194)Mark Shannon2024-08-213-3/+15
|
* GH-118093: Make `CALL_ALLOC_AND_ENTER_INIT` suitable for tier 2. (GH-123140)Mark Shannon2024-08-208-145/+287
| | | | | * Convert CALL_ALLOC_AND_ENTER_INIT to micro-ops such that tier 2 supports it * Allow inexact arguments for CALL_ALLOC_AND_ENTER_INIT.
* gh-123048: Fix missing source location in pattern matching code (#123167)Irit Katriel2024-08-201-1/+1
|
* gh-121404: rename functions to use codegen_* prefix. Use macros more ↵Irit Katriel2024-08-191-349/+303
| | | | consistently. (#123139)
* gh-121404: pass metadata to compiler_enter_scope (optionally) so that ↵Irit Katriel2024-08-191-58/+82
| | | | codegen functions don't need to set it on the code unit (#123078)
* GH-118093: Specialize `CALL_KW` (GH-123006)Mark Shannon2024-08-168-15/+749
|
* gh-121404: rename compiler_addop* to codegen_addop*, and replace direct ↵Irit Katriel2024-08-161-96/+102
| | | | usages by the macros (#123043)
* Add debug offsets for free threaded builds (#123041)Pablo Galindo Salgado2024-08-152-2/+4
|
* gh-117139: Garbage collector support for deferred refcounting (#122956)Sam Gross2024-08-153-18/+93
| | | | | | | | | | The free-threaded GC now visits interpreter stacks to keep objects that use deferred reference counting alive. Interpreter frames are zero initialized in the free-threaded GC so that the GC doesn't see garbage data. This is a temporary measure until stack spilling around escaping calls is implemented. Co-authored-by: Ken Jin <kenjin@python.org>
* gh-121404: split compiler's push/pop_inlined_comprehension_state into ↵Irit Katriel2024-08-151-63/+102
| | | | codegen and compiler parts (#123021)
* GH-118093: Turn some DEOPT_IFs into EXIT_IFs (GH-122998)Brandt Bucher2024-08-143-27/+27
|
* GH-120024: Remove `CHECK_EVAL_BREAKER` macro. (GH-122968)Mark Shannon2024-08-146-311/+636
| | | | | * Factor some instructions into micro-ops to isolate CHECK_EVAL_BREAKER for escape analysis * Eliminate CHECK_EVAL_BREAKER macro
* gh-122985: add SYMBOL_TO_SCOPE macro in symtable (#122986)Irit Katriel2024-08-142-9/+6
|
* gh-122907: Fix Builds Without HAVE_DYNAMIC_LOADING Set (gh-122952)Eric Snow2024-08-131-4/+8
| | | As of 529a160 (gh-118204), building with HAVE_DYNAMIC_LOADING stopped working. This is a minimal fix just to get builds working again. There are actually a number of long-standing deficiencies with HAVE_DYNAMIC_LOADING builds that need to be resolved separately.
* GH-122390: Replace `_Py_GetbaseOpcode` with `_Py_GetBaseCodeUnit` (GH-122942)Mark Shannon2024-08-134-46/+52
|
* GH-122821: Simplify compilation of while statements to ensure consistency of ↵Mark Shannon2024-08-131-3/+1
| | | | offsets for sys.monitoring (GH-122934)
* GH-118093: Handle some polymorphism before requiring progress in tier two ↵Brandt Bucher2024-08-124-38/+61
| | | | (GH-122843)
* gh-117139: Replace _PyList_FromArraySteal with stack ref variant (#122830)Sam Gross2024-08-123-29/+3
| | | | | | | This replaces `_PyList_FromArraySteal` with `_PyList_FromStackRefSteal`. It's functionally equivalent, but takes a `_PyStackRef` array instead of an array of `PyObject` pointers. Co-authored-by: Ken Jin <kenjin@python.org>
* gh-117139: Fix a few `_PyStackRef` related bugs (#122831)Sam Gross2024-08-123-16/+14
| | | | | | `BUILD_SET` should use a borrow instead of a steal. The cleanup in `_DO_CALL` `CONVERSION_FAILED` was incorrect. Co-authored-by: Ken Jin <kenjin@python.org>
* GH-122869: Add missing tier two optimizer cases (GH-122936)Mark Shannon2024-08-122-4/+31
|
* gh-122860: Remove unused macro `_Py_atomic_load_relaxed_int32` (#122861)Sam Gross2024-08-112-14/+0
|
* gh-122697: Fix free-threading memory leaks at shutdown (#122703)Sam Gross2024-08-083-1/+17
| | | | | | | | | | | | | | | We were not properly accounting for interpreter memory leaks at shutdown and had two sources of leaks: * Objects that use deferred reference counting and were reachable via static types outlive the final GC. We now disable deferred reference counting on all objects if we are calling the GC due to interpreter shutdown. * `_PyMem_FreeDelayed` did not properly check for interpreter shutdown so we had some memory blocks that were enqueued to be freed, but never actually freed. * `_PyType_FinalizeIdPool` wasn't called at interpreter shutdown.
* gh-122562: fix dump_symtable for ste_free and ste_child_free removal (#122825)Irit Katriel2024-08-081-1/+1
|
* GH-120024: Tidy up case generator code a bit. (GH-122780)Mark Shannon2024-08-081-3/+0
|
* gh-122247: Move instruction instrumentation sanity check after tracing check ↵Tian Gao2024-08-081-1/+1
| | | | (#122251)
* gh-118814: Fix the TypeVar constructor when name is passed by keyword ↵Serhiy Storchaka2024-08-071-1/+1
| | | | | | | | (GH-122664) Fix _PyArg_UnpackKeywordsWithVararg for the case when argument for positional-or-keyword parameter is passed by keyword. There was only one such case in the stdlib -- the TypeVar constructor.
* gh-118926: Spill deferred references to stack in cases generator (#122748)Sam Gross2024-08-073-35/+41
| | | | | | | This automatically spills the results from `_PyStackRef_FromPyObjectNew` to the in-memory stack so that the deferred references are visible to the GC before we make any possibly escaping call. Co-authored-by: Ken Jin <kenjin@python.org>
* gh-122759: Remove `assert` from `RERAISE` error handling (#122760)sobolevn2024-08-072-2/+0
|
* gh-117139: Fix an incorrect borrow in bytecodes.c (#122318)Sam Gross2024-08-073-11/+14
| | | `_PyDict_SetItem_Take2` steals both the key (i.e., `sub`) and the value.
* gh-122728: Fix SystemError in PyEval_GetLocals() (#122735)Victor Stinner2024-08-061-1/+1
| | | | | | | Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals().
* gh-122417: Implement per-thread heap type refcounts (#122418)Sam Gross2024-08-063-51/+231
| | | | | | | The free-threaded build partially stores heap type reference counts in distributed manner in per-thread arrays. This avoids reference count contention when creating or destroying instances. Co-authored-by: Ken Jin <kenjin@python.org>
* GH-120024: Move three more escaping calls out of conditional statements ↵Mark Shannon2024-08-063-10/+32
| | | | (GH-122734)
* GH-120024: Refactor code a bit so that escaping calls can be wrapped in ↵Mark Shannon2024-08-063-42/+78
| | | | spill code in code generator (GH-122693)
* gh-122595: Add more error checks in the compiler (GH-122596)Serhiy Storchaka2024-08-062-52/+145
|
* GH-122616: Simplify LOAD_ATTR_WITH_HINT and STORE_ATTR_WITH_HINT (GH-122620)Mark Shannon2024-08-053-95/+44
|
* gh-122313: Clean up deep recursion guarding code in the compiler (GH-122640)Serhiy Storchaka2024-08-033-162/+164
| | | | | | | | | Add ENTER_RECURSIVE and LEAVE_RECURSIVE macros in ast.c, ast_opt.c and symtable.c. Remove VISIT_QUIT macro in symtable.c. The current recursion depth counter only needs to be updated during normal execution -- all functions should just return an error code if an error occurs.
* GH-117224: Move the body of a few large-ish micro-ops into helper functions ↵Mark Shannon2024-08-024-335/+159
| | | | (GH-122601)
* gh-122445: populate only modified fields in __static_attributes__ (#122446)Irit Katriel2024-08-021-7/+11
|
* gh-122334: Fix crash when importing ssl after re-initialization (#122481)neonene2024-08-021-0/+13
| | | | * Fix crash when importing ssl after re-initialization
* gh-122188: Remove _imp.pyc_magic_number (GH-122503)Serhiy Storchaka2024-08-021-5/+1
| | | _imp.pyc_magic_number_token should be enough.