Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | gh-110481: Implement biased reference counting (gh-110764) | Sam Gross | 2023-10-30 | 1 | -10/+2 |
| | |||||
* | gh-109094: replace frame->prev_instr by frame->instr_ptr (#109095) | Irit Katriel | 2023-10-26 | 1 | -4/+4 |
| | |||||
* | GH-109369: Add machinery for deoptimizing tier2 executors, both individually ↵ | Mark Shannon | 2023-10-23 | 1 | -0/+3 |
| | | | | and globally. (GH-110384) | ||||
* | GH-109369: Merge all eval-breaker flags and monitoring version into one ↵ | Mark Shannon | 2023-10-04 | 1 | -7/+40 |
| | | | | word. (GH-109846) | ||||
* | GH-107265: Add missing deoptimizations for ENTER_EXECUTOR's original opcode ↵ | Tian Gao | 2023-09-22 | 1 | -1/+1 |
| | | | | (GH-109420) | ||||
* | gh-109371: Fix monitoring with instruction events set (gh-109385) | Tian Gao | 2023-09-18 | 1 | -1/+4 |
| | |||||
* | GH-105848: Replace KW_NAMES + CALL with LOAD_CONST + CALL_KW (GH-109300) | Brandt Bucher | 2023-09-13 | 1 | -0/+5 |
| | |||||
* | gh-109039: Branch prediction for Tier 2 interpreter (#109038) | Guido van Rossum | 2023-09-11 | 1 | -0/+1 |
| | | | | | | | | | | | This adds a 16-bit inline cache entry to the conditional branch instructions POP_JUMP_IF_{FALSE,TRUE,NONE,NOT_NONE} and their instrumented variants, which is used to keep track of the branch direction. Each time we encounter these instructions we shift the cache entry left by one and set the bottom bit to whether we jumped. Then when it's time to translate such a branch to Tier 2 uops, we use the bit count from the cache entry to decided whether to continue translating the "didn't jump" branch or the "jumped" branch. The counter is initialized to a pattern of alternating ones and zeros to avoid bias. The .pyc file magic number is updated. There's a new test, some fixes for existing tests, and a few miscellaneous cleanups. | ||||
* | GH-108976. Keep monitoring data structures valid during de-optimization ↵ | Mark Shannon | 2023-09-11 | 1 | -55/+51 |
| | | | | during callback. (GH-109131) | ||||
* | gh-109094: remove unnecessary updates of frame->prev_instr in ↵ | Irit Katriel | 2023-09-07 | 1 | -6/+2 |
| | | | | instrumentation functions (#109076) | ||||
* | gh-107265: Remove all ENTER_EXECUTOR when execute _Py_Instrument (gh-108539) | Dong-hee Na | 2023-09-07 | 1 | -32/+11 |
| | |||||
* | GH-108390: Prevent non-local events being set with ↵ | Mark Shannon | 2023-09-05 | 1 | -46/+84 |
| | | | | `sys.monitoring.set_local_events()` (GH-108420) | ||||
* | gh-107265: Fix initialize/remove_tools for ENTER_EXECUTOR case (gh-108482) | Dong-hee Na | 2023-08-27 | 1 | -4/+32 |
| | |||||
* | gh-105481: remove regen-opcode. Generated _PyOpcode_Caches in regen-cases. ↵ | Irit Katriel | 2023-08-23 | 1 | -2/+4 |
| | | | | (#108367) | ||||
* | gh-107265: Ensure de_instrument does not handle ENTER_EXECUTOR (#108366) | Dong-hee Na | 2023-08-23 | 1 | -0/+1 |
| | |||||
* | GH-108035: Remove the `_PyCFrame` struct as it is no longer needed for ↵ | Mark Shannon | 2023-08-17 | 1 | -1/+1 |
| | | | | performance. (GH-108036) | ||||
* | gh-103082: remove assumption that INSTRUMENTED_LINE is the last instrumented ↵ | Irit Katriel | 2023-08-15 | 1 | -2/+2 |
| | | | | opcode (#107978) | ||||
* | gh-103082: use IS_VALID_OPCODE instead of _PyOpcode_OpName to check if an ↵ | Irit Katriel | 2023-08-14 | 1 | -4/+4 |
| | | | | opcode is defined (#107882) | ||||
* | GH-107674: Avoid allocating boxed ints for `sys.settrace` line events ↵ | Mark Shannon | 2023-08-10 | 1 | -6/+38 |
| | | | | (GH-107780) | ||||
* | GH-107774: Add missing audit event for PEP 669 (GH-107775) | Mark Shannon | 2023-08-10 | 1 | -0/+3 |
| | |||||
* | GH-107724: Fix the signature of `PY_THROW` callback functions. (GH-107725) | Mark Shannon | 2023-08-09 | 1 | -10/+0 |
| | |||||
* | GH-106895: Raise a `ValueError` when attempting to disable events that ↵ | Mark Shannon | 2023-07-27 | 1 | -42/+37 |
| | | | | cannot be disabled. (GH-107337) | ||||
* | GH-106897: Add `RERAISE` event to `sys.monitoring`. (GH-107291) | Mark Shannon | 2023-07-27 | 1 | -0/+1 |
| | | | * Ensures that exception handling events are balanced. Each [re]raise event has a matching unwind/handled event. | ||||
* | gh-107082: Fix instruction size computation for ENTER_EXECUTOR (#107256) | Guido van Rossum | 2023-07-25 | 1 | -0/+7 |
| | | | | Co-authored-by: Victor Stinner <vstinner@python.org> | ||||
* | GH-103082: Rename PY_MONITORING_EVENTS to _PY_MONITORING_EVENTS (#107069) | Victor Stinner | 2023-07-22 | 1 | -19/+19 |
| | | | | | | Rename private C API constants: * Rename PY_MONITORING_UNGROUPED_EVENTS to _PY_MONITORING_UNGROUPED_EVENTS * Rename PY_MONITORING_EVENTS to _PY_MONITORING_EVENTS | ||||
* | gh-106320: Create pycore_modsupport.h header file (#106355) | Victor Stinner | 2023-07-03 | 1 | -0/+1 |
| | | | | | | | | | | Remove the following functions from the C API, move them to the internal C API: add a new pycore_modsupport.h internal header file: * PyModule_CreateInitialized() * _PyArg_NoKwnames() * _Py_VaBuildStack() No longer export these functions. | ||||
* | gh-106320: Use _PyInterpreterState_GET() (#106336) | Victor Stinner | 2023-07-02 | 1 | -6/+4 |
| | | | | Replace PyInterpreterState_Get() with inlined _PyInterpreterState_GET(). | ||||
* | gh-106320: Remove _PyInterpreterState_Get() alias (#106321) | Victor Stinner | 2023-07-01 | 1 | -9/+9 |
| | | | | Replace calls to the (removed) slow _PyInterpreterState_Get() with fast inlined _PyInterpreterState_GET() function. | ||||
* | GH-106012: Fix monitoring of static code objects (GH-106017) | Mark Shannon | 2023-06-23 | 1 | -13/+18 |
| | |||||
* | GH-91095: Specialize calls to normal Python classes. (GH-99331) | Mark Shannon | 2023-06-22 | 1 | -1/+1 |
| | |||||
* | GH-100987: Allow objects other than code objects as the "executable" of an ↵ | Mark Shannon | 2023-06-14 | 1 | -5/+5 |
| | | | | | | | | | | 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-105229: Remove remaining two-codeunit superinstructions (GH-105326) | Mark Shannon | 2023-06-08 | 1 | -14/+0 |
| | | | | * Remove LOAD_CONST__LOAD_FAST and LOAD_FAST__LOAD_CONST superinstructions. | ||||
* | GH-105229: Replace some superinstructions with single instruction ↵ | Mark Shannon | 2023-06-05 | 1 | -3/+0 |
| | | | | equivalent. (GH-105230) | ||||
* | GH-104584: Plugin optimizer API (GH-105100) | Mark Shannon | 2023-06-02 | 1 | -14/+13 |
| | |||||
* | gh-103865: add monitoring support to LOAD_SUPER_ATTR (#103866) | Carl Meyer | 2023-05-16 | 1 | -0/+5 |
| | |||||
* | GH-103082: Filter LINE events in VM, to simplify tool implementation. ↵ | Mark Shannon | 2023-05-12 | 1 | -17/+102 |
| | | | | | | | | (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-103845: Remove line & instruction instrumentations before adding them ↵ | Tian Gao | 2023-05-03 | 1 | -8/+33 |
| | | | | back (GH-103851) | ||||
* | GH-103082: Code cleanup in instrumentation code (#103474) | Mark Shannon | 2023-04-29 | 1 | -31/+34 |
| | |||||
* | gh-84436: Implement Immortal Objects (gh-19474) | Eddie Elizondo | 2023-04-22 | 1 | -2/+2 |
| | | | | | | | | | This is the implementation of PEP683 Motivation: The PR introduces the ability to immortalize instances in CPython which bypasses reference counting. Tagging objects as immortal allows up to skip certain operations when we know that the object will be around for the entire execution of the runtime. Note that this by itself will bring a performance regression to the runtime due to the extra reference count checks. However, this brings the ability of having truly immutable objects that are useful in other contexts such as immutable data sharing between sub-interpreters. | ||||
* | gh-103082: Fix shifted field initialization in `instrumentation.c` (GH-103561) | Oleg Iarygin | 2023-04-21 | 1 | -4/+4 |
| | | | Fix shifted field initialization in instrumentation.c | ||||
* | Fix unused functions warnings in instrumentation.c (GH-103515) | Benjamin Peterson | 2023-04-13 | 1 | -0/+4 |
| | |||||
* | GH-103082: Turn on branch events for FOR_ITER instructions. (#103507) | Mark Shannon | 2023-04-13 | 1 | -0/+2 |
| | | | Turn on branch events for FOR_ITER instructions. | ||||
* | GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython ↵ | Mark Shannon | 2023-04-12 | 1 | -0/+2021 |
(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 |