Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | gh-121404: compiler_annassign --> codegen_annassign (#123245) | Irit Katriel | 2024-08-23 | 1 | -63/+100 | |
| | ||||||
* | GH-123040: Specialize shadowed `LOAD_ATTR`. (GH-123219) | Mark Shannon | 2024-08-23 | 4 | -138/+261 | |
| | ||||||
* | gh-123083: Fix a potential use-after-free in ``STORE_ATTR_WITH_HINT`` ↵ | Donghee Na | 2024-08-22 | 3 | -18/+21 | |
| | | | | (gh-123092) | |||||
* | gh-121404: remove redundant c_nestlevel. more compiler abstractions. more ↵ | Irit Katriel | 2024-08-22 | 1 | -118/+111 | |
| | | | | macro usage consistency (#123225) | |||||
* | GH-123197: Only count an instruction as deferred if it hasn't deopted first. ↵ | Mark Shannon | 2024-08-22 | 3 | -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 Bucher | 2024-08-22 | 1 | -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 Katriel | 2024-08-21 | 1 | -2/+3 | |
| | | | | broken iterables in comprehensions (#123173) | |||||
* | GH-115776: Allow any fixed sized object to have inline values (GH-123192) | Mark Shannon | 2024-08-21 | 8 | -31/+50 | |
| | ||||||
* | gh-121404: split fblock handling into compiler_* and codegen_* parts (#123199) | Irit Katriel | 2024-08-21 | 1 | -15/+24 | |
| | ||||||
* | GH-123197: Increment correct stat for CALL_KW (GH-123200) | Mark Shannon | 2024-08-21 | 2 | -2/+2 | |
| | ||||||
* | GH-123185: Check for `NULL` after calling `_PyEvalFramePushAndInit` (GH-123194) | Mark Shannon | 2024-08-21 | 3 | -3/+15 | |
| | ||||||
* | GH-118093: Make `CALL_ALLOC_AND_ENTER_INIT` suitable for tier 2. (GH-123140) | Mark Shannon | 2024-08-20 | 8 | -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 Katriel | 2024-08-20 | 1 | -1/+1 | |
| | ||||||
* | gh-121404: rename functions to use codegen_* prefix. Use macros more ↵ | Irit Katriel | 2024-08-19 | 1 | -349/+303 | |
| | | | | consistently. (#123139) | |||||
* | gh-121404: pass metadata to compiler_enter_scope (optionally) so that ↵ | Irit Katriel | 2024-08-19 | 1 | -58/+82 | |
| | | | | codegen functions don't need to set it on the code unit (#123078) | |||||
* | GH-118093: Specialize `CALL_KW` (GH-123006) | Mark Shannon | 2024-08-16 | 8 | -15/+749 | |
| | ||||||
* | gh-121404: rename compiler_addop* to codegen_addop*, and replace direct ↵ | Irit Katriel | 2024-08-16 | 1 | -96/+102 | |
| | | | | usages by the macros (#123043) | |||||
* | Add debug offsets for free threaded builds (#123041) | Pablo Galindo Salgado | 2024-08-15 | 2 | -2/+4 | |
| | ||||||
* | gh-117139: Garbage collector support for deferred refcounting (#122956) | Sam Gross | 2024-08-15 | 3 | -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 Katriel | 2024-08-15 | 1 | -63/+102 | |
| | | | | codegen and compiler parts (#123021) | |||||
* | GH-118093: Turn some DEOPT_IFs into EXIT_IFs (GH-122998) | Brandt Bucher | 2024-08-14 | 3 | -27/+27 | |
| | ||||||
* | GH-120024: Remove `CHECK_EVAL_BREAKER` macro. (GH-122968) | Mark Shannon | 2024-08-14 | 6 | -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 Katriel | 2024-08-14 | 2 | -9/+6 | |
| | ||||||
* | gh-122907: Fix Builds Without HAVE_DYNAMIC_LOADING Set (gh-122952) | Eric Snow | 2024-08-13 | 1 | -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 Shannon | 2024-08-13 | 4 | -46/+52 | |
| | ||||||
* | GH-122821: Simplify compilation of while statements to ensure consistency of ↵ | Mark Shannon | 2024-08-13 | 1 | -3/+1 | |
| | | | | offsets for sys.monitoring (GH-122934) | |||||
* | GH-118093: Handle some polymorphism before requiring progress in tier two ↵ | Brandt Bucher | 2024-08-12 | 4 | -38/+61 | |
| | | | | (GH-122843) | |||||
* | gh-117139: Replace _PyList_FromArraySteal with stack ref variant (#122830) | Sam Gross | 2024-08-12 | 3 | -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 Gross | 2024-08-12 | 3 | -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 Shannon | 2024-08-12 | 2 | -4/+31 | |
| | ||||||
* | gh-122860: Remove unused macro `_Py_atomic_load_relaxed_int32` (#122861) | Sam Gross | 2024-08-11 | 2 | -14/+0 | |
| | ||||||
* | gh-122697: Fix free-threading memory leaks at shutdown (#122703) | Sam Gross | 2024-08-08 | 3 | -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 Katriel | 2024-08-08 | 1 | -1/+1 | |
| | ||||||
* | GH-120024: Tidy up case generator code a bit. (GH-122780) | Mark Shannon | 2024-08-08 | 1 | -3/+0 | |
| | ||||||
* | gh-122247: Move instruction instrumentation sanity check after tracing check ↵ | Tian Gao | 2024-08-08 | 1 | -1/+1 | |
| | | | | (#122251) | |||||
* | gh-118814: Fix the TypeVar constructor when name is passed by keyword ↵ | Serhiy Storchaka | 2024-08-07 | 1 | -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 Gross | 2024-08-07 | 3 | -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) | sobolevn | 2024-08-07 | 2 | -2/+0 | |
| | ||||||
* | gh-117139: Fix an incorrect borrow in bytecodes.c (#122318) | Sam Gross | 2024-08-07 | 3 | -11/+14 | |
| | | | `_PyDict_SetItem_Take2` steals both the key (i.e., `sub`) and the value. | |||||
* | gh-122728: Fix SystemError in PyEval_GetLocals() (#122735) | Victor Stinner | 2024-08-06 | 1 | -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 Gross | 2024-08-06 | 3 | -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 Shannon | 2024-08-06 | 3 | -10/+32 | |
| | | | | (GH-122734) | |||||
* | GH-120024: Refactor code a bit so that escaping calls can be wrapped in ↵ | Mark Shannon | 2024-08-06 | 3 | -42/+78 | |
| | | | | spill code in code generator (GH-122693) | |||||
* | gh-122595: Add more error checks in the compiler (GH-122596) | Serhiy Storchaka | 2024-08-06 | 2 | -52/+145 | |
| | ||||||
* | GH-122616: Simplify LOAD_ATTR_WITH_HINT and STORE_ATTR_WITH_HINT (GH-122620) | Mark Shannon | 2024-08-05 | 3 | -95/+44 | |
| | ||||||
* | gh-122313: Clean up deep recursion guarding code in the compiler (GH-122640) | Serhiy Storchaka | 2024-08-03 | 3 | -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 Shannon | 2024-08-02 | 4 | -335/+159 | |
| | | | | (GH-122601) | |||||
* | gh-122445: populate only modified fields in __static_attributes__ (#122446) | Irit Katriel | 2024-08-02 | 1 | -7/+11 | |
| | ||||||
* | gh-122334: Fix crash when importing ssl after re-initialization (#122481) | neonene | 2024-08-02 | 1 | -0/+13 | |
| | | | | * Fix crash when importing ssl after re-initialization | |||||
* | gh-122188: Remove _imp.pyc_magic_number (GH-122503) | Serhiy Storchaka | 2024-08-02 | 1 | -5/+1 | |
| | | | _imp.pyc_magic_number_token should be enough. |