Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | GH-94163: Add BINARY_SLICE and STORE_SLICE instructions. (GH-94168) | Mark Shannon | 2022-06-27 | 1 | -0/+41 | |
| | ||||||
* | GH-93841: Allow stats to be turned on and off, cleared and dumped at ↵ | Mark Shannon | 2022-06-21 | 1 | -3/+3 | |
| | | | | runtime. (GH-93843) | |||||
* | GH-91432: Specialize FOR_ITER (GH-91713) | Dennis Sweeney | 2022-06-21 | 1 | -12/+62 | |
| | | | | | * Adds FOR_ITER_LIST and FOR_ITER_RANGE specializations. * Adds _PyLong_AssignValue() internal function to avoid temporary boxing of ints. | |||||
* | GH-93516: Speedup line number checks when tracing. (GH-93763) | Mark Shannon | 2022-06-20 | 1 | -7/+9 | |
| | | | | * Use a lookup table to reduce overhead of getting line numbers during tracing. | |||||
* | GH-93897: Store frame size in code object and de-opt if insufficient space ↵ | Mark Shannon | 2022-06-20 | 1 | -24/+14 | |
| | | | | on thread frame stack. (GH-93908) | |||||
* | gh-93937, C API: Move PyFrame_GetBack() to Python.h (#93938) | Victor Stinner | 2022-06-19 | 1 | -1/+0 | |
| | | | | | | | | | | | | | | | | Move the follow functions and type from frameobject.h to pyframe.h, so the standard <Python.h> provide frame getter functions: * PyFrame_Check() * PyFrame_GetBack() * PyFrame_GetBuiltins() * PyFrame_GetGenerator() * PyFrame_GetGlobals() * PyFrame_GetLasti() * PyFrame_GetLocals() * PyFrame_Type Remove #include "frameobject.h" from many C files. It's no longer needed. | |||||
* | gh-93911: Specialize `LOAD_ATTR_PROPERTY` (GH-93912) | Ken Jin | 2022-06-17 | 1 | -4/+42 | |
| | ||||||
* | gh-77782: Py_FdIsInteractive() now uses PyConfig.interactive (#93916) | Victor Stinner | 2022-06-17 | 1 | -3/+3 | |
| | ||||||
* | Fix BINARY_SUBSCR_GETITEM stats (GH-93903) | Ken Jin | 2022-06-16 | 1 | -6/+5 | |
| | ||||||
* | GH-93429: Merge `LOAD_METHOD` back into `LOAD_ATTR` (GH-93430) | Ken Jin | 2022-06-14 | 1 | -136/+104 | |
| | ||||||
* | GH-93516: Store offset of first traceable instruction in code object (GH-93769) | Mark Shannon | 2022-06-14 | 1 | -52/+37 | |
| | ||||||
* | Fix MSVC compiler warnings in ceval.c (#93569) | Ken Jin | 2022-06-07 | 1 | -2/+2 | |
| | ||||||
* | Shrink the LOAD_METHOD cache by one codeunit. (#93537) | Mark Shannon | 2022-06-07 | 1 | -7/+4 | |
| | ||||||
* | gh-93143: Avoid NULL check in LOAD_FAST based on analysis in the compiler ↵ | Dennis Sweeney | 2022-05-31 | 1 | -16/+14 | |
| | | | | (GH-93144) | |||||
* | GH-93354: Use exponential backoff to avoid excessive specialization ↵ | Mark Shannon | 2022-05-31 | 1 | -21/+25 | |
| | | | | attempts. (GH-93355) | |||||
* | bpo-40514: Drop EXPERIMENTAL_ISOLATED_SUBINTERPRETERS (gh-93185) | Eric Snow | 2022-05-27 | 1 | -55/+0 | |
| | | | | | | | This was added for bpo-40514 (gh-84694) to test out a per-interpreter GIL. However, it has since proven unnecessary to keep the experiment in the repo. (It can be done as a branch in a fork like normal.) So here we are removing: * the configure option * the macro * the code enabled by the macro | |||||
* | GH-90230: Add stats to breakdown the origin of calls to `PyEval_EvalFrame` ↵ | Mark Shannon | 2022-05-27 | 1 | -1/+4 | |
| | | | | (GH-93284) | |||||
* | gh-92777: Add LOAD_METHOD_LAZY_DICT (GH-92778) | Ken Jin | 2022-05-25 | 1 | -0/+23 | |
| | ||||||
* | gh-91924: Fix __lltrace__ for non-UTF-8 stdout encoding (#93199) | Victor Stinner | 2022-05-25 | 1 | -1/+3 | |
| | | | | | | | | Fix __lltrace__ debug feature if the stdout encoding is not UTF-8. If the stdout encoding is not UTF-8, the first call to lltrace_resume_frame() indirectly sets lltrace to 0 when calling unicode_check_encoding_errors() which calls encodings.search_function(). | |||||
* | GH-89914: Make the oparg of the YIELD_VALUE instruction equal the stack ↵ | Mark Shannon | 2022-05-19 | 1 | -0/+1 | |
| | | | | depth. (GH-92960) | |||||
* | GH-90690: Remove `PRECALL` instruction (GH-92925) | Mark Shannon | 2022-05-19 | 1 | -170/+101 | |
| | ||||||
* | Split refcount stats into 'interpreter' and 'non-interpreter' (GH-92919) | Mark Shannon | 2022-05-18 | 1 | -0/+2 | |
| | ||||||
* | Improve object stats (#92845) | Mark Shannon | 2022-05-16 | 1 | -0/+2 | |
| | | | | | * Add incref/decref stats * Show ratios for allocation in summary | |||||
* | GH-92236: Remove spurious "line" event when starting coroutine or generator. ↵ | Mark Shannon | 2022-05-13 | 1 | -0/+6 | |
| | | | | (GH-92722) | |||||
* | Update outdated `LOAD_METHOD` comments in `Python/ceval.c` (GH-92641) | Crowthebird | 2022-05-12 | 1 | -2/+2 | |
| | ||||||
* | GH-92239: Make sure that PEP 523 is supported, even when specializing first. ↵ | Mark Shannon | 2022-05-04 | 1 | -0/+2 | |
| | | | | (GH-92245) | |||||
* | Use static inline function Py_EnterRecursiveCall() (#91988) | Victor Stinner | 2022-05-04 | 1 | -15/+15 | |
| | | | | | | | | | | | | | | | | Currently, calling Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() may use a function call or a static inline function call, depending if the internal pycore_ceval.h header file is included or not. Use a different name for the static inline function to ensure that the static inline function is always used in Python internals for best performance. Similar approach than PyThreadState_GET() (function call) and _PyThreadState_GET() (static inline function). * Rename _Py_EnterRecursiveCall() to _Py_EnterRecursiveCallTstate() * Rename _Py_LeaveRecursiveCall() to _Py_LeaveRecursiveCallTstate() * pycore_ceval.h: Rename Py_EnterRecursiveCall() to _Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() and _Py_LeaveRecursiveCall() | |||||
* | gh-92063: Enforce types in specialized PRECALL opcodes (GH-92068) | Dennis Sweeney | 2022-04-30 | 1 | -16/+27 | |
| | | | | | | | | | * Check the types of PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS * fix PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS as well * fix PRECALL_NO_KW_METHOD_DESCRIPTOR_O * fix PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST | |||||
* | gh-91869: Fix tracing of specialized instructions with extended args (GH-91945) | Dennis Sweeney | 2022-04-28 | 1 | -0/+9 | |
| | ||||||
* | gh-91719: Add pycore_opcode.h internal header file (#91906) | Victor Stinner | 2022-04-25 | 1 | -0/+1 | |
| | | | | | | | | | | | Move the following API from Include/opcode.h (public C API) to a new Include/internal/pycore_opcode.h header file (internal C API): * EXTRA_CASES * _PyOpcode_Caches * _PyOpcode_Deopt * _PyOpcode_Jump * _PyOpcode_OpName * _PyOpcode_RelativeJump | |||||
* | gh-89279: In ceval.c, redefine some macros for speed (#32387) | Guido van Rossum | 2022-04-22 | 1 | -13/+60 | |
| | | | | | | | | | | | Macros Py_DECREF, Py_XDECREF, Py_IS_TYPE, _Py_atomic_load_32bit_impl and _Py_DECREF_SPECIALIZED are redefined as macros that completely replace the inline functions of the same name. These three came out in the top four of functions that (in MSVC) somehow weren't inlined. Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: Dennis Sweeney <36520290+sweeneyde@users.noreply.github.com> | |||||
* | GH-91719: Make MSVC generate somewhat faster switch code (#91718) | Guido van Rossum | 2022-04-21 | 1 | -2/+4 | |
| | | | | | | | | | | | Apparently a switch on an 8-bit quantity where all cases are present generates a more efficient jump (doing only one indexed memory load instead of two). So we make opcode and use_tracing uint8_t, and generate a macro full of extra `case NNN:` lines for all unused opcodes. See https://github.com/faster-cpython/ideas/issues/321#issuecomment-1103263673 | |||||
* | Cast to (destructor) to fix compiler warnings (GH-91711) | Dennis Sweeney | 2022-04-20 | 1 | -11/+11 | |
| | ||||||
* | gh-90667: Add specializations of Py_DECREF when types are known (GH-30872) | Dennis Sweeney | 2022-04-19 | 1 | -40/+44 | |
| | ||||||
* | gh-91625: Don't ignore extended args of adaptive opcodes (GH-91626) | Dennis Sweeney | 2022-04-17 | 1 | -16/+21 | |
| | ||||||
* | gh-78607: Replace __ltrace__ with __lltrace__ (GH-91619) | Dennis Sweeney | 2022-04-16 | 1 | -1/+1 | |
| | ||||||
* | gh-91462: Make lltrace output human-readable. (GH-91463) | Dennis Sweeney | 2022-04-16 | 1 | -35/+83 | |
| | | | | | | * Transform opcodes into opnames * Print the whole stack at each opcode, and eliminate prtrace output at each (push/pop/stackadj) * Display info about the function at each resume_frame | |||||
* | gh-91276: Make JUMP_IF_TRUE_OR_POP/JUMP_IF_FALSE_OR_POP relative (GH-32215) | Irit Katriel | 2022-04-15 | 1 | -4/+4 | |
| | ||||||
* | gh-90699: Use _Py_STR(empty) instead of PyUnicode_New(0, 0) for BUILD_STRING ↵ | Dennis Sweeney | 2022-04-15 | 1 | -6/+2 | |
| | | | | (GH-91476) | |||||
* | bpo-47120: make POP_JUMP_IF_TRUE/FALSE/NONE/NOT_NONE relative (GH-32400) | Irit Katriel | 2022-04-11 | 1 | -47/+132 | |
| | ||||||
* | Fix some typos in comments (GH-32422) | jonasdlindner | 2022-04-09 | 1 | -1/+1 | |
| | ||||||
* | bpo-47177: Replace `f_lasti` with `prev_instr` (GH-32208) | Brandt Bucher | 2022-04-07 | 1 | -34/+37 | |
| | ||||||
* | bpo-35134: Remove the Include/code.h header file (GH-32385) | Victor Stinner | 2022-04-07 | 1 | -1/+0 | |
| | | | | | | Remove the Include/code.h header file. C extensions should only include the main <Python.h> header file. Python.h includes directly Include/cpython/code.h instead. | |||||
* | bpo-47009: Fix assert on big endian (GH-32332) | Christian Heimes | 2022-04-05 | 1 | -1/+1 | |
| | ||||||
* | bpo-47120: make JUMP_NO_INTERRUPT relative (GH-32221) | Irit Katriel | 2022-04-05 | 1 | -2/+2 | |
| | ||||||
* | bpo-47186: Replace JUMP_IF_NOT_EG_MATCH by CHECK_EG_MATCH + jump (GH-32309) | Irit Katriel | 2022-04-05 | 1 | -13/+3 | |
| | ||||||
* | bpo-47009: Let PRECALL_NO_KW_LIST_APPEND do its own POP_TOP (GH-32239) | Dennis Sweeney | 2022-04-05 | 1 | -4/+4 | |
| | ||||||
* | bpo-47176: Interrupt handling for wasm32-emscripten builds without pthreads ↵ | Hood Chatham | 2022-04-03 | 1 | -0/+2 | |
| | | | | | | (GH-32209) Co-authored-by: Christian Heimes <christian@python.org> Co-authored-by: Brett Cannon <brett@python.org> | |||||
* | bpo-47186: Replace JUMP_IF_NOT_EXC_MATCH by CHECK_EXC_MATCH + jump (GH-32231) | Irit Katriel | 2022-04-01 | 1 | -4/+2 | |
| | ||||||
* | bpo-47009: Streamline list.append for the common case (GH-31864) | Dennis Sweeney | 2022-04-01 | 1 | -9/+4 | |
| |