Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | bpo-46850: Remove _PyEval_GetCoroutineOriginTrackingDepth() (GH-32018) | Victor Stinner | 2022-03-21 | 1 | -4/+10 | |
| | | | | | | | | | | | | | | | Remove the private undocumented function _PyEval_GetCoroutineOriginTrackingDepth() from the C API. Call the public sys.get_coroutine_origin_tracking_depth() function instead. Change the internal function _PyEval_SetCoroutineOriginTrackingDepth(): * Remove the 'tstate' parameter; * Add return value and raises an exception if depth is negative; * No longer export the function: call the public sys.set_coroutine_origin_tracking_depth() function instead. Uniformize also function declarations in pycore_ceval.h. | |||||
* | Use low bit of LOAD_GLOBAL's oparg to indicate whether it should push an ↵ | Mark Shannon | 2022-03-17 | 1 | -5/+13 | |
| | | | | additional NULL. (GH-31933) | |||||
* | bpo-46841: Don't scan backwards in bytecode (GH-31901) | Mark Shannon | 2022-03-16 | 1 | -13/+7 | |
| | ||||||
* | bpo-45923: Decouple suspension of tracing from tracing flag. (GH-31908) | Mark Shannon | 2022-03-15 | 1 | -16/+28 | |
| | ||||||
* | bpo-46920: Remove code that has explainers why it was disabled (GH-31813) | Oleg Iarygin | 2022-03-14 | 1 | -6/+0 | |
| | ||||||
* | bpo-46841: Add a _Py_SET_OPCODE macro (GH-31780) | Brandt Bucher | 2022-03-12 | 1 | -1/+1 | |
| | ||||||
* | bpo-46841: Don't use an oparg counter for `STORE_SUBSCR` (GH-31742) | Brandt Bucher | 2022-03-08 | 1 | -20/+9 | |
| | ||||||
* | bpo-46841: Use inline caching for calls (GH-31709) | Brandt Bucher | 2022-03-07 | 1 | -142/+93 | |
| | ||||||
* | bpo-46940: Don't override existing AttributeError suggestion information ↵ | Pablo Galindo Salgado | 2022-03-07 | 1 | -3/+6 | |
| | | | | | | | | | | | | (GH-31710) When an exception is created in a nested call to PyObject_GetAttr, any external calls will override the context information of the AttributeError that we have already placed in the most internal call. This will cause the suggestions we create to nor work properly as the attribute name and object that we will be using are the incorrect ones. To avoid this, we need to check first if these attributes are already set and bail out if that's the case. | |||||
* | bpo-46841: Fix BINARY_OP's handling of inline caches (GH-31671) | Brandt Bucher | 2022-03-04 | 1 | -2/+3 | |
| | ||||||
* | bpo-46841: Fix error message hacks in `GET_AWAITABLE` (GH-31664) | Brandt Bucher | 2022-03-04 | 1 | -11/+5 | |
| | ||||||
* | bpo-46841: Use inline caching for attribute accesses (GH-31640) | Brandt Bucher | 2022-03-03 | 1 | -166/+102 | |
| | ||||||
* | Move check for str-only keys in LOAD_GLOBAL specializations to ↵ | Mark Shannon | 2022-03-03 | 1 | -15/+6 | |
| | | | | specialization time. (GH-31659) | |||||
* | bpo-46845: Reduce dict size when all keys are Unicode (GH-31564) | Inada Naoki | 2022-03-01 | 1 | -40/+53 | |
| | ||||||
* | bpo-46841: Use inline cache for `BINARY_SUBSCR`. (GH-31618) | Mark Shannon | 2022-03-01 | 1 | -13/+19 | |
| | ||||||
* | bpo-46841: Use inline caching for `COMPARE_OP` (GH-31622) | Brandt Bucher | 2022-03-01 | 1 | -15/+18 | |
| | ||||||
* | bpo-45431: Rename CFrame to _PyCFrame in the C API (GH-31584) | Victor Stinner | 2022-02-28 | 1 | -3/+3 | |
| | | | | | | Rename also struct _cframe to struct _PyCFrame. Add a comment suggesting using public functions rather than using directly the private _PyCFrame structure. | |||||
* | bpo-46841: Move the cache for `LOAD_GLOBAL` inline. (GH-31575) | Mark Shannon | 2022-02-28 | 1 | -18/+20 | |
| | ||||||
* | bpo-46841: Use inline caching for `UNPACK_SEQUENCE` (GH-31591) | Brandt Bucher | 2022-02-28 | 1 | -14/+15 | |
| | ||||||
* | bpo-46836: Rename InterpreterFrame to _PyInterpreterFrame (GH-31583) | Victor Stinner | 2022-02-25 | 1 | -41/+41 | |
| | | | | | Rename also struct _interpreter_frame to struct _PyInterpreterFrame. Reduce risk of name conflicts if a project includes pycore_frame.h. | |||||
* | bpo-46841: Use *inline* caching for `BINARY_OP` (GH-31543) | Brandt Bucher | 2022-02-25 | 1 | -6/+34 | |
| | ||||||
* | bpo-45107: Specialize `LOAD_METHOD` for instances with dict. (GH-31531) | Mark Shannon | 2022-02-24 | 1 | -2/+34 | |
| | ||||||
* | bpo-46823: Implement LOAD_FAST__LOAD_ATTR_INSTANCE_VALUE superinstruction ↵ | Dennis Sweeney | 2022-02-24 | 1 | -3/+77 | |
| | | | | (GH-31484) | |||||
* | bpo-44337: Shrink the LOAD_ATTR/STORE_ATTR caches (GH-31517) | Brandt Bucher | 2022-02-23 | 1 | -23/+16 | |
| | ||||||
* | Fix reporting of specialization stats. (GH-31503) | Mark Shannon | 2022-02-22 | 1 | -0/+2 | |
| | ||||||
* | Move call specializations from CALL to PRECALL. (GH-31496) | Mark Shannon | 2022-02-22 | 1 | -75/+132 | |
| | ||||||
* | bpo-46329: Streamline calling sequence a bit. (GH-31465) | Mark Shannon | 2022-02-21 | 1 | -118/+151 | |
| | | | | | | | | | | | | | | * Move handling of bound-methods to PRECALL. * Remove call_shape.postcall_shrink * Remove call_shape.callable * Remove call_shape.callable. Change CALL oparg to match PRECALL oparg. * Move KW_NAMES before PRECALL. * Update opcode docs in dis.rst | |||||
* | bpo-46329: Change calling sequence (again) (GH-31373) | Mark Shannon | 2022-02-18 | 1 | -21/+11 | |
| | | | | * Change calling sequence: Add PUSH_NULL. Merge PRECALL_FUNCTION and PRECALL_METHOD into PRECALL. | |||||
* | bpo-46709: check eval breaker in specialized `CALL` opcodes (GH-31404) | Nikita Sobolev | 2022-02-18 | 1 | -0/+9 | |
| | ||||||
* | bpo-46702: Specialize UNPACK_SEQUENCE (GH-31240) | Brandt Bucher | 2022-02-16 | 1 | -33/+66 | |
| | ||||||
* | Include length in stats for UNPACK_SEQUENCE. (GH-31254) | Mark Shannon | 2022-02-14 | 1 | -2/+2 | |
| | ||||||
* | bpo-45923: Add `RESUME_QUICK` (GH-31244) | Brandt Bucher | 2022-02-10 | 1 | -7/+9 | |
| | ||||||
* | Gather stats for PRECALL_METHOD. (GH-31259) | Mark Shannon | 2022-02-10 | 1 | -2/+13 | |
| | ||||||
* | bpo-46532: Reduce number of memory writes to update call_shape.kwnames. ↵ | Mark Shannon | 2022-02-10 | 1 | -7/+15 | |
| | | | | (GH-31231) | |||||
* | Fix sys.getdxp() when configured with --enable-pystats. (GH-31251) | Mark Shannon | 2022-02-10 | 1 | -1/+17 | |
| | ||||||
* | Add stats for PRECALL_FUNCTION. (GH-31250) | Mark Shannon | 2022-02-10 | 1 | -0/+5 | |
| | ||||||
* | bpo-46541: Replace core use of _Py_IDENTIFIER() with statically initialized ↵ | Eric Snow | 2022-02-08 | 1 | -56/+34 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | global objects. (gh-30928) We're no longer using _Py_IDENTIFIER() (or _Py_static_string()) in any core CPython code. It is still used in a number of non-builtin stdlib modules. The replacement is: PyUnicodeObject (not pointer) fields under _PyRuntimeState, statically initialized as part of _PyRuntime. A new _Py_GET_GLOBAL_IDENTIFIER() macro facilitates lookup of the fields (along with _Py_GET_GLOBAL_STRING() for non-identifier strings). https://bugs.python.org/issue46541#msg411799 explains the rationale for this change. The core of the change is in: * (new) Include/internal/pycore_global_strings.h - the declarations for the global strings, along with the macros * Include/internal/pycore_runtime_init.h - added the static initializers for the global strings * Include/internal/pycore_global_objects.h - where the struct in pycore_global_strings.h is hooked into _PyRuntimeState * Tools/scripts/generate_global_objects.py - added generation of the global string declarations and static initializers I've also added a --check flag to generate_global_objects.py (along with make check-global-objects) to check for unused global strings. That check is added to the PR CI config. The remainder of this change updates the core code to use _Py_GET_GLOBAL_IDENTIFIER() instead of _Py_IDENTIFIER() and the related _Py*Id functions (likewise for _Py_GET_GLOBAL_STRING() instead of _Py_static_string()). This includes adding a few functions where there wasn't already an alternative to _Py*Id(), replacing the _Py_Identifier * parameter with PyObject *. The following are not changed (yet): * stop using _Py_IDENTIFIER() in the stdlib modules * (maybe) get rid of _Py_IDENTIFIER(), etc. entirely -- this may not be doable as at least one package on PyPI using this (private) API * (maybe) intern the strings during runtime init https://bugs.python.org/issue46541 | |||||
* | bpo-46675: Allow object value arrays and split key dictionaries larger than ↵ | Mark Shannon | 2022-02-08 | 1 | -3/+2 | |
| | | | | 16 (GH-31191) | |||||
* | bpo-46072: Merge dxpairs into py_stats. (GH-31197) | Mark Shannon | 2022-02-07 | 1 | -60/+17 | |
| | ||||||
* | bpo-46670: Remove unused macros in ceval.c (GH-31196) | Victor Stinner | 2022-02-07 | 1 | -7/+2 | |
| | | | Remove CHECKEXC() and EXT_POP() macros. | |||||
* | Add miss stats for specialized instructions. (GH-31108) | Mark Shannon | 2022-02-04 | 1 | -0/+1 | |
| | ||||||
* | Collect stats for UNPACK_SEQUENCE. (GH-31105) | Mark Shannon | 2022-02-03 | 1 | -0/+6 | |
| | ||||||
* | Pass reference to func, as well as args, when pushing frame. (GH-31100) | Mark Shannon | 2022-02-03 | 1 | -5/+5 | |
| | ||||||
* | Add specialization stats for FOR_ITER. (GH-31079) | Mark Shannon | 2022-02-02 | 1 | -0/+5 | |
| | ||||||
* | bpo-46072: Add some frame stats. (GH-31060) | Mark Shannon | 2022-02-02 | 1 | -1/+4 | |
| | ||||||
* | fFx refleak in isinstance error path (GH-31005) | Ken Jin | 2022-01-29 | 1 | -0/+1 | |
| | ||||||
* | bpo-46072: Add simple stats for Python calls. (GH-30989) | Mark Shannon | 2022-01-28 | 1 | -0/+4 | |
| | ||||||
* | bpo-46329: Split calls into precall and call instructions. (GH-30855) | Mark Shannon | 2022-01-28 | 1 | -190/+325 | |
| | | | | | | | | | | | | | | * Add PRECALL_FUNCTION opcode. * Move 'call shape' varaibles into struct. * Replace CALL_NO_KW and CALL_KW with KW_NAMES and CALL instructions. * Specialize for builtin methods taking using the METH_FASTCALL | METH_KEYWORDS protocol. * Allow kwnames for specialized calls to builtin types. * Specialize calls to tuple(arg) and str(arg). | |||||
* | bpo-46528: Simplify the VM's stack manipulations (GH-30902) | Brandt Bucher | 2022-01-26 | 1 | -59/+9 | |
| | ||||||
* | Use existing unbound_local_error label in DELETE_FAST opcode (GH-30882) | Kumar Aditya | 2022-01-26 | 1 | -6/+1 | |
| |