Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [3.13] gh-74929: PEP 667 C API documentation (gh-119892) | Miss Islington (bot) | 2024-06-01 | 1 | -2/+7 |
| | | | | | | | | | | | * Add docs for new APIs * Add soft-deprecation notices * Add What's New porting entries * Update comments referencing `PyFrame_LocalsToFast()` to mention the proxy instead * Other related cleanups found when looking for refs to the deprecated APIs (cherry picked from commit 3859e09e3d92d004978dd838f0511364e7edfb94) Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com> | ||||
* | [3.13] gh-118921: Add `copy()` method for `FrameLocalsProxy` (GH-118923) ↵ | Miss Islington (bot) | 2024-05-10 | 1 | -0/+19 |
| | | | | | | | (#118933) (cherry picked from commit 35c436186b849f8f2f9fb866c59015c9d034d448) Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com> | ||||
* | gh-118746: Fix crash in frame_getlocals and _PyFrame_GetLocals (#118748) | Tian Gao | 2024-05-08 | 1 | -0/+18 |
| | | | | We don't know how to create an unoptimized frame with f_locals == NULL, but they are seen in the wild, and this fixes the crash. | ||||
* | GH-115709: Invalidate executors when a local variable is changed via ↵ | Mark Shannon | 2024-05-06 | 1 | -1/+2 |
| | | | | | frame.f_locals (#118639) Also fix unrelated assert in debug Tier2/JIT builds. | ||||
* | gh-118609: Add proper error check for framelocalsproxy (#118615) | Tian Gao | 2024-05-06 | 1 | -46/+99 |
| | |||||
* | gh-74929: Make containment checks more efficient in `FrameLocalsProxy` (#118624) | Tian Gao | 2024-05-06 | 1 | -10/+19 |
| | | | Properly implement the `sq_contains` slot for frame locals proxy containment checks. | ||||
* | gh-118605: Fix reference leak in FrameLocalsProxy (#118607) | Tian Gao | 2024-05-05 | 1 | -3/+28 |
| | | | Also add some error checks. | ||||
* | gh-74929: Remove undesirable DECREF in PEP 667 implementation (#118583) | Tian Gao | 2024-05-05 | 1 | -1/+0 |
| | | | | With tests. | ||||
* | gh-74929: Implement PEP 667 (GH-115153) | Tian Gao | 2024-05-04 | 1 | -199/+661 |
| | |||||
* | gh-107674: Lazy load line number to improve performance of tracing (GH-118127) | Tian Gao | 2024-04-29 | 1 | -4/+12 |
| | |||||
* | GH-118095: Handle `RETURN_GENERATOR` in tier 2 (GH-118180) | Mark Shannon | 2024-04-25 | 1 | -5/+0 |
| | |||||
* | gh-115756: make PyCode_GetFirstFree an unstable API (GH-115781) | Bogdan Romanyuk | 2024-03-19 | 1 | -1/+1 |
| | |||||
* | gh-113939: Frame clear, clear locals (#113940) | Albert Zeyer | 2024-01-31 | 1 | -0/+1 |
| | |||||
* | gh-111375: Use `NULL` rather than `None` in the exception stack to indicate ↵ | Carey Metcalfe | 2023-12-21 | 1 | -1/+1 |
| | | | | that an exception was handled (#113302) | ||||
* | gh-79932: raise exception if frame.clear() is called on a suspended frame ↵ | Irit Katriel | 2023-11-07 | 1 | -0/+7 |
| | | | | (#111792) | ||||
* | simplify code to pop exception in frame_setlineno (#111702) | Irit Katriel | 2023-11-06 | 1 | -5/+2 |
| | |||||
* | gh-103615: Use local events for opcode tracing (GH-109472) | Tian Gao | 2023-11-03 | 1 | -1/+7 |
| | | | | | | | * Use local monitoring for opcode trace * Remove f_opcode_trace_set * Add test for setting f_trace_opcodes after settrace | ||||
* | gh-111354: Simplify _PyGen_yf by moving some of its work to the compiler and ↵ | Irit Katriel | 2023-11-03 | 1 | -1/+1 |
| | | | | frame state (#111648) | ||||
* | gh-109094: replace frame->prev_instr by frame->instr_ptr (#109095) | Irit Katriel | 2023-10-26 | 1 | -4/+4 |
| | |||||
* | GH-94438: Restore ability to jump over None tests (GH-111237) | Savannah Ostrowski | 2023-10-24 | 1 | -0/+2 |
| | |||||
* | GH-105848: Replace KW_NAMES + CALL with LOAD_CONST + CALL_KW (GH-109300) | Brandt Bucher | 2023-09-13 | 1 | -12/+2 |
| | |||||
* | gh-108732: include comprehension locals in frame.f_locals (#109026) | Carl Meyer | 2023-09-07 | 1 | -4/+10 |
| | | | | Co-authored-by: Radislav Chugunov <52372310+chgnrdv@users.noreply.github.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> | ||||
* | gh-108991: replace _PyFrame_GetState by two simpler functions (#108992) | Irit Katriel | 2023-09-06 | 1 | -31/+20 |
| | |||||
* | gh-105481: remove regen-opcode. Generated _PyOpcode_Caches in regen-cases. ↵ | Irit Katriel | 2023-08-23 | 1 | -2/+1 |
| | | | | (#108367) | ||||
* | gh-105481: generate op IDs from bytecode.c instead of hard coding them in ↵ | Irit Katriel | 2023-08-16 | 1 | -0/+2 |
| | | | | opcode.py (#107971) | ||||
* | gh-106092: Fix use-after-free crash in frame_dealloc (#106875) | Anders Kaseorg | 2023-08-01 | 1 | -6/+7 |
| | | | | | | | | | It was possible for the trashcan to delay the deallocation of a PyFrameObject until after its corresponding _PyInterpreterFrame has already been freed. So frame_dealloc needs to avoid dereferencing the f_frame pointer unless it first checks that the pointer still points to the interpreter frame within the frame object. Signed-off-by: Anders Kaseorg <andersk@mit.edu> | ||||
* | gh-106869: Use new PyMemberDef constant names (#106871) | Victor Stinner | 2023-07-25 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove '#include "structmember.h"'. * If needed, add <stddef.h> to get offsetof() function. * Update Parser/asdl_c.py to regenerate Python/Python-ast.c. * Replace: * T_SHORT => Py_T_SHORT * T_INT => Py_T_INT * T_LONG => Py_T_LONG * T_FLOAT => Py_T_FLOAT * T_DOUBLE => Py_T_DOUBLE * T_STRING => Py_T_STRING * T_OBJECT => _Py_T_OBJECT * T_CHAR => Py_T_CHAR * T_BYTE => Py_T_BYTE * T_UBYTE => Py_T_UBYTE * T_USHORT => Py_T_USHORT * T_UINT => Py_T_UINT * T_ULONG => Py_T_ULONG * T_STRING_INPLACE => Py_T_STRING_INPLACE * T_BOOL => Py_T_BOOL * T_OBJECT_EX => Py_T_OBJECT_EX * T_LONGLONG => Py_T_LONGLONG * T_ULONGLONG => Py_T_ULONGLONG * T_PYSSIZET => Py_T_PYSSIZET * T_NONE => _Py_T_NONE * READONLY => Py_READONLY * PY_AUDIT_READ => Py_AUDIT_READ * READ_RESTRICTED => Py_AUDIT_READ * PY_WRITE_RESTRICTED => _Py_WRITE_RESTRICTED * RESTRICTED => (READ_RESTRICTED | _Py_WRITE_RESTRICTED) | ||||
* | gh-105340: include hidden fast-locals in locals() (#105715) | Carl Meyer | 2023-07-05 | 1 | -5/+60 |
| | | | * gh-105340: include hidden fast-locals in locals() | ||||
* | Fix duplicate word typos in comments (#106225) | Md Sadman Chowdhury | 2023-07-01 | 1 | -1/+1 |
| | |||||
* | GH-100987: Allow objects other than code objects as the "executable" of an ↵ | Mark Shannon | 2023-06-14 | 1 | -19/+20 |
| | | | | | | | | | | internal frame. (GH-105727) * Add table describing possible executable classes for out-of-process debuggers. * Remove shim code object creation code as it is no longer needed. * Make lltrace a bit more robust w.r.t. non-standard frames. | ||||
* | GH-104584: Plugin optimizer API (GH-105100) | Mark Shannon | 2023-06-02 | 1 | -1/+1 |
| | |||||
* | GH-103082: Filter LINE events in VM, to simplify tool implementation. ↵ | Mark Shannon | 2023-05-12 | 1 | -3/+0 |
| | | | | | | | | (GH-104387) When monitoring LINE events, instrument all instructions that can have a predecessor on a different line. Then check that the a new line has been hit in the instrumentation code. This brings the behavior closer to that of 3.11, simplifying implementation and porting of tools. | ||||
* | gh-97933: (PEP 709) inline list/dict/set comprehensions (#101441) | Carl Meyer | 2023-05-09 | 1 | -0/+4 |
| | | | | Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> | ||||
* | GH-96803: Add three C-API functions to make _PyInterpreterFrame less opaque ↵ | Mark Shannon | 2023-05-05 | 1 | -1/+1 |
| | | | | for users of PEP 523. (GH-96849) | ||||
* | GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython ↵ | Mark Shannon | 2023-04-12 | 1 | -68/+102 |
| | | | | | | | | | | (GH-103083) * The majority of the monitoring code is in instrumentation.c * The new instrumentation bytecodes are in bytecodes.c * legacy_tracing.c adapts the new API to the old sys.setrace and sys.setprofile APIs | ||||
* | GH-100982: Break up COMPARE_AND_BRANCH (GH-102801) | Brandt Bucher | 2023-03-23 | 1 | -8/+0 |
| | |||||
* | gh-102859: Remove JUMP_IF_FALSE_OR_POP and JUMP_IF_TRUE_OR_POP (#102870) | Irit Katriel | 2023-03-22 | 1 | -12/+2 |
| | |||||
* | gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives ↵ | Irit Katriel | 2023-03-08 | 1 | -3/+2 |
| | | | | (in Objects/) (#102218) | ||||
* | gh-101907: Stop using `_Py_OPCODE` and `_Py_OPARG` macros (GH-101912) | Steve Dower | 2023-02-20 | 1 | -12/+12 |
| | | | | | | * gh-101907: Removes use of non-standard C++ extension from Include/cpython/code.h * Make cases_generator correct on Windows | ||||
* | GH-87849: Simplify stack effect of SEND and specialize it for generators and ↵ | Mark Shannon | 2023-02-13 | 1 | -3/+3 |
| | | | | coroutines. (GH-101788) | ||||
* | gh-101632: Add the new RETURN_CONST opcode (#101633) | penguin_wwy | 2023-02-07 | 1 | -0/+2 |
| | |||||
* | GH-100982: Add `COMPARE_AND_BRANCH` instruction (GH-100983) | Mark Shannon | 2023-01-16 | 1 | -0/+8 |
| | |||||
* | GH-100126: Skip incomplete frames in more places (GH-100613) | Brandt Bucher | 2023-01-09 | 1 | -3/+1 |
| | |||||
* | gh-100758: Refactor initialisation of frame headers into a single function ↵ | Irit Katriel | 2023-01-06 | 1 | -5/+2 |
| | | | | (_PyFrame_Initialize) (GH-100759) | ||||
* | GH-100719: Remove the `co_nplaincellvars` field from code objects. (GH-100721) | Mark Shannon | 2023-01-04 | 1 | -1/+1 |
| | |||||
* | gh-100720: refactor calculation of number of frame slots for a code object ↵ | Irit Katriel | 2023-01-04 | 1 | -1/+1 |
| | | | | into the new function _PyFrame_NumSlotsForCodeObject (#100722) | ||||
* | gh-99110: Initialize `frame->previous` in init_frame to fix segmentation ↵ | Bill Fisher | 2022-12-23 | 1 | -0/+1 |
| | | | | fault when accessing `frame.f_back` (#100182) | ||||
* | Remove old comment (GH-99489) | Brandt Bucher | 2022-11-16 | 1 | -9/+0 |
| | |||||
* | gh-91248: Optimize PyFrame_GetVar() (#99252) | Victor Stinner | 2022-11-13 | 1 | -95/+136 |
| | | | | PyFrame_GetVar() no longer creates a temporary dictionary to get a variable. | ||||
* | gh-99300: Use Py_NewRef() in Objects/ directory (#99335) | Victor Stinner | 2022-11-10 | 1 | -28/+12 |
| | | | | Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and Py_XNewRef() in C files of the Objects/ directory. |