Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | GH-105848: Simplify the arrangement of CALL's stack (GH-107788) | Brandt Bucher | 2023-08-09 | 1 | -289/+266 | |
| | ||||||
* | GH-107596: Specialize str[int] (GH-107597) | Brandt Bucher | 2023-08-08 | 1 | -0/+24 | |
| | ||||||
* | gh-106812: Refactor cases_generator to allow uops with array stack effects ↵ | Guido van Rossum | 2023-08-04 | 1 | -488/+706 | |
| | | | | | (#107564) Introducing a new file, stacking.py, that takes over several responsibilities related to symbolic evaluation of push/pop operations, with more generality. | |||||
* | GH-107263: Increase C stack limit for most functions, except ↵ | Mark Shannon | 2023-08-04 | 1 | -1/+1 | |
| | | | | | | `_PyEval_EvalFrameDefault()` (GH-107535) * Set C recursion limit to 1500, set cost of eval loop to 2 frames, and compiler mutliply to 2. | |||||
* | Use tstate->interp to get the interpreter state in bytecodes.c (GH-107506) | Brandt Bucher | 2023-07-31 | 1 | -3/+3 | |
| | ||||||
* | GH-104909: Move unused cache entries from uops to macros (#107444) | Guido van Rossum | 2023-07-31 | 1 | -8/+0 | |
| | | | | | | There's no need to use a dummy uop to skip unused cache entries. The macro syntax lets you write `unused/1` instead. Similarly, move `unused/5` from op `_LOAD_ATTR_INSTANCE_VALUE` to macro `LOAD_ATTR_INSTANCE_VALUE`. | |||||
* | GH-106895: Raise a `ValueError` when attempting to disable events that ↵ | Mark Shannon | 2023-07-27 | 1 | -1/+6 | |
| | | | | cannot be disabled. (GH-107337) | |||||
* | GH-106897: Add `RERAISE` event to `sys.monitoring`. (GH-107291) | Mark Shannon | 2023-07-27 | 1 | -1/+8 | |
| | | | * Ensures that exception handling events are balanced. Each [re]raise event has a matching unwind/handled event. | |||||
* | gh-106917: fix super classmethod calls to non-classmethods (#106977) | Carl Meyer | 2023-07-24 | 1 | -1/+1 | |
| | ||||||
* | GH-106701: Move _PyUopExecute to Python/executor.c (GH-106924) | Brandt Bucher | 2023-07-20 | 1 | -27/+27 | |
| | ||||||
* | gh-105481: do not auto-generate pycore_intrinsics.h (#106913) | Irit Katriel | 2023-07-20 | 1 | -2/+2 | |
| | ||||||
* | GH-104584: Miscellaneous fixes for -Xuops (GH-106908) | Brandt Bucher | 2023-07-20 | 1 | -1/+8 | |
| | ||||||
* | gh-105481: Generate the opcode lists in dis from data extracted from ↵ | Irit Katriel | 2023-07-18 | 1 | -1/+1 | |
| | | | | bytecodes.c (#106758) | |||||
* | Small fixes to code generator (#106845) | Guido van Rossum | 2023-07-18 | 1 | -5/+3 | |
| | | | | These repair nits I found in PR gh-106798 (issue gh-106797) and in PR gh-106716 (issue gh-106706). | |||||
* | gh-106603: Make uop struct a triple (opcode, oparg, operand) (#106794) | Guido van Rossum | 2023-07-17 | 1 | -10/+4 | |
| | ||||||
* | gh-106581: Add 10 new opcodes by allowing `assert(kwnames == NULL)` (#106707) | Guido van Rossum | 2023-07-17 | 1 | -15/+15 | |
| | | | | | | | | | | | | | By turning `assert(kwnames == NULL)` into a macro that is not in the "forbidden" list, many instructions that formerly were skipped because they contained such an assert (but no other mention of `kwnames`) are now supported in Tier 2. This covers 10 instructions in total (all specializations of `CALL` that invoke some C code): - `CALL_NO_KW_TYPE_1` - `CALL_NO_KW_STR_1` - `CALL_NO_KW_TUPLE_1` - `CALL_NO_KW_BUILTIN_O` - `CALL_NO_KW_BUILTIN_FAST` - `CALL_NO_KW_LEN` - `CALL_NO_KW_ISINSTANCE` - `CALL_NO_KW_METHOD_DESCRIPTOR_O` - `CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS` - `CALL_NO_KW_METHOD_DESCRIPTOR_FAST` | |||||
* | gh-106797: Remove warning logs from Python/generated_cases.c.h (gh-106798) | Dong-hee Na | 2023-07-17 | 1 | -12/+8 | |
| | ||||||
* | gh-106529: Split FOR_ITER_{LIST,TUPLE} into uops (#106696) | Guido van Rossum | 2023-07-14 | 1 | -44/+80 | |
| | | | | Also rename `_ITER_EXHAUSTED_XXX` to `_IS_ITER_EXHAUSTED_XXX` to make it clear this is a test. | |||||
* | GH-104909: Split `LOAD_ATTR_INSTANCE_VALUE` into micro-ops (GH-106678) | Mark Shannon | 2023-07-13 | 1 | -21/+38 | |
| | ||||||
* | gh-106529: Split FOR_ITER_RANGE into uops (#106638) | Guido van Rossum | 2023-07-12 | 1 | -20/+38 | |
| | | | | For an example of what this does for Tier 1 and Tier 2, see https://github.com/python/cpython/issues/106529#issuecomment-1631649920 | |||||
* | gh-106656: Remove --emit-line-directives from regen-cases (#106657) | Guido van Rossum | 2023-07-12 | 1 | -548/+0 | |
| | | | | | | | If you prefer to see `#line` directives in generated_cases.c.h, run ``` make regen-cases CASESFLAG=-l ``` But please don't commit the result. | |||||
* | GH-104909: Break LOAD_GLOBAL specializations in micro-ops. (GH-106677) | Mark Shannon | 2023-07-12 | 1 | -345/+377 | |
| | ||||||
* | gh-106307: C API: Add PyMapping_GetOptionalItem() function (GH-106308) | Serhiy Storchaka | 2023-07-11 | 1 | -485/+387 | |
| | | | | Also add PyMapping_GetOptionalItemString() function. | |||||
* | GH-106529: Define POP_JUMP_IF_NONE in terms of POP_JUMP_IF_TRUE (GH-106599) | Mark Shannon | 2023-07-11 | 1 | -173/+201 | |
| | ||||||
* | gh-106572: Convert PyObject_DelAttr() to a function (#106611) | Victor Stinner | 2023-07-11 | 1 | -1/+1 | |
| | | | | | | | | * Convert PyObject_DelAttr() and PyObject_DelAttrString() macros to functions. * Add PyObject_DelAttr() and PyObject_DelAttrString() functions to the stable ABI. * Replace PyObject_SetAttr(obj, name, NULL) with PyObject_DelAttr(obj, name). | |||||
* | GH-100288: Specialize LOAD_ATTR for simple class attributes. (#105990) | Mark Shannon | 2023-07-10 | 1 | -170/+228 | |
| | | | * Add two more specializations of LOAD_ATTR. | |||||
* | GH-106057: Handle recursion errors in inline class calls properly. (GH-106108) | Mark Shannon | 2023-07-07 | 1 | -78/+79 | |
| | ||||||
* | gh-104584: Fix error handling from backedge optimization (#106484) | Guido van Rossum | 2023-07-06 | 1 | -1/+1 | |
| | | | | | | | | | | | | When `_PyOptimizer_BackEdge` returns `NULL`, we should restore `next_instr` (and `stack_pointer`). To accomplish this we should jump to `resume_with_error` instead of just `error`. The problem this causes is subtle -- the only repro I have is in PR gh-106393, at commit d7df54b139bcc47f5ea094bfaa9824f79bc45adc. But the fix is real (as shown later in that PR). While we're at it, also improve the debug output: the offsets at which traces are identified are now measured in bytes, and always show the start offset. This makes it easier to correlate executor calls with optimizer calls, and either with `dis` output. <!-- gh-issue-number: gh-104584 --> * Issue: gh-104584 <!-- /gh-issue-number --> | |||||
* | GH-104584: Fix ENTER_EXECUTOR (GH-106141) | Mark Shannon | 2023-07-03 | 1 | -167/+172 | |
| | | | | | | * Check eval-breaker in ENTER_EXECUTOR. * Make sure that frame->prev_instr is set before entering executor. | |||||
* | gh-106023: Update code using _PyObject_FastCall() (#106257) | Victor Stinner | 2023-06-30 | 1 | -265/+265 | |
| | | | Replace _PyObject_FastCall() calls with PyObject_Vectorcall(). | |||||
* | GH-106008: Make implicit boolean conversions explicit (GH-106003) | Brandt Bucher | 2023-06-29 | 1 | -519/+617 | |
| | ||||||
* | gh-105775: Convert LOAD_CLOSURE to a pseudo-op (#106059) | hms | 2023-06-29 | 1 | -523/+510 | |
| | | | | | | This enables super-instruction formation, removal of checks for uninitialized variables, and frees up an instruction. | |||||
* | gh-104584: Baby steps towards generating and executing traces (#105924) | Guido van Rossum | 2023-06-27 | 1 | -259/+259 | |
| | | | | | Added a new, experimental, tracing optimizer and interpreter (a.k.a. "tier 2"). This currently pessimizes, so don't use yet -- this is infrastructure so we can experiment with optimizing passes. To enable it, pass ``-Xuops`` or set ``PYTHONUOPS=1``. To get debug output, set ``PYTHONUOPSDEBUG=N`` where ``N`` is a debug level (0-4, where 0 is no debug output and 4 is excessively verbose). All of this code is likely to change dramatically before the 3.13 feature freeze. But this is a first step. | |||||
* | GH-91095: Specialize calls to normal Python classes. (GH-99331) | Mark Shannon | 2023-06-22 | 1 | -79/+151 | |
| | ||||||
* | GH-104584: Assorted fixes for the optimizer API. (GH-105683) | Mark Shannon | 2023-06-19 | 1 | -162/+163 | |
| | | | | | | * Add test for long loops * Clear ENTER_EXECUTOR when deopting code objects. | |||||
* | gh-105481: add HAS_JUMP flag to opcode metadata (#105791) | Irit Katriel | 2023-06-14 | 1 | -134/+138 | |
| | ||||||
* | GH-77273: Better bytecodes for f-strings (GH-6132) | Mark Shannon | 2023-06-14 | 1 | -303/+307 | |
| | ||||||
* | GH-100987: Allow objects other than code objects as the "executable" of an ↵ | Mark Shannon | 2023-06-14 | 1 | -396/+395 | |
| | | | | | | | | | | 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-105481: add flags to each instr in the opcode metadata table, to replace ↵ | Irit Katriel | 2023-06-13 | 1 | -381/+383 | |
| | | | | opcode.hasarg/hasname/hasconst (#105482) | |||||
* | GH-105678: Split MAKE_FUNCTION into MAKE_FUNCTION and SET_FUNCTION_ATTRIBUTE ↵ | Mark Shannon | 2023-06-13 | 1 | -294/+306 | |
| | | | | (GH-105680) | |||||
* | gh-105481: add pseudo-instructions to the bytecodes DSL (#105506) | Irit Katriel | 2023-06-11 | 1 | -253/+253 | |
| | ||||||
* | GH-105229: Remove remaining two-codeunit superinstructions (GH-105326) | Mark Shannon | 2023-06-08 | 1 | -538/+484 | |
| | | | | * Remove LOAD_CONST__LOAD_FAST and LOAD_FAST__LOAD_CONST superinstructions. | |||||
* | GH-104610: Remove the use of `PREDICT` macros. (GH-104651) | Mark Shannon | 2023-06-07 | 1 | -523/+507 | |
| | ||||||
* | GH-105229: Replace some superinstructions with single instruction ↵ | Mark Shannon | 2023-06-05 | 1 | -563/+536 | |
| | | | | equivalent. (GH-105230) | |||||
* | gh-105214: Use named constants for MAKE_FUNCTION oparg (#105215) | Jelle Zijlstra | 2023-06-02 | 1 | -269/+269 | |
| | ||||||
* | GH-104584: Plugin optimizer API (GH-105100) | Mark Shannon | 2023-06-02 | 1 | -339/+366 | |
| | ||||||
* | remove unused #includes of pycore_pymem.h (#105166) | Irit Katriel | 2023-06-01 | 1 | -259/+259 | |
| | ||||||
* | gh-104909: Split BINARY_OP into micro-ops (#104910) | Guido van Rossum | 2023-05-31 | 1 | -556/+663 | |
| | | | Co-authored-by: Brandt Bucher <brandtbucher@gmail.com> | |||||
* | gh-105035: fix super() calls on unusual types (e.g. meta-types) (#105094) | Carl Meyer | 2023-05-30 | 1 | -220/+222 | |
| | ||||||
* | GH-104580: Don't cache eval breaker in interpreter (GH-104581) | Mark Shannon | 2023-05-18 | 1 | -253/+253 | |
| | | | Move eval-breaker to the front of the interpreter state. |