Mark Shannon
aa3b4cf779
GH-96636: Remove all uses of NOTRACE_DISPATCH (GH-96643)
...
Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
2022-09-08 17:16:48 +01:00
Itamar Ostricher
4f523a7054
gh-96653: Remove duplicate CALL_STAT_INC(inlined_py_calls) in BINARY_SUBSCR_GETITEM (GH-96654)
2022-09-08 16:22:32 +08:00
Brandt Bucher
0d04b8d9e1
GH-91432: Remove the iterator_exhausted_no_error label (GH-96517)
2022-09-06 21:07:20 -07:00
Kumar Aditya
67444902a0
GH-96572: fix use after free in trace refs build mode ( #96618 )
2022-09-06 11:02:41 -07:00
Dennis Sweeney
ac18665472
ceval.c's GETITEM should have asserts, not set exceptions (GH-96518)
2022-09-04 19:00:24 -04:00
Irit Katriel
4c72517cad
gh-93554: Conditional jump opcodes only jump forward (GH-96318)
2022-09-01 21:36:47 +01:00
Brandt Bucher
88671a9d69
Remove the binary_subscr_dict_error label (GH-96443)
2022-08-30 15:45:24 -07:00
Mark Shannon
c09fa7542c
GH-96237: Allow non-functions as reference-holder in frames. (GH-96238)
2022-08-25 10:16:55 +01:00
Pablo Galindo Salgado
e34c82abeb
GH-93503: Add thread-specific APIs to set profiling and tracing functions in the C-API ( #93504 )
...
* gh-93503: Add APIs to set profiling and tracing functions in all threads in the C-API
* Use a separate API
* Fix NEWS entry
* Add locks around the loop
* Document ignoring exceptions
* Use the new APIs in the sys module
* Update docs
2022-08-24 23:21:39 +01:00
Mark Shannon
a4a9f2e879
GH-96177: Move GIL and eval breaker code out of ceval.c into ceval_gil.c. (GH-96204)
2022-08-24 14:21:01 +01:00
Brandt Bucher
5bfb3c372b
GH-90997: Wrap yield from/await in a virtual try/except StopIteration (GH-96010)
2022-08-19 12:33:44 -07:00
Ken Jin
7276ca25f5
GH-93911: Specialize LOAD_ATTR
for custom __getattribute__
(GH-93988)
2022-08-17 12:37:07 +01:00
zhanpon
23a757f44f
Update _PyEval_AddPendingCall comment ( #95817 )
2022-08-11 13:32:52 +02:00
Mark Shannon
de388c0a7b
GH-95245: Store object values and dict pointers in single tagged pointer. (GH-95278)
2022-08-01 14:34:54 +01:00
Mark Shannon
b8b2990fb3
GH-90081: Run python tracers at full speed (GH-95328)
2022-07-28 10:17:22 +01:00
Brandt Bucher
e402b26b7f
GH-95113: Don't use EXTENDED_ARG_QUICK in unquickened code (GH-95121)
2022-07-22 11:04:20 -07:00
Mark Shannon
2f8bff6879
GH-94739: Mark stacks of exception handling blocks for setting frame.f_lineno in the debugger. (GH-94958)
2022-07-18 16:06:42 +01:00
Brandt Bucher
8a285df806
GH-93252: Fix error handling for failed Python calls (GH-94693)
2022-07-08 18:52:26 -07:00
Brandt Bucher
23ee4a8067
gh-94215: Fix error handling for line-tracing events (GH-94681)
...
* Re-enable crasher
* Fix error handling for line-tracing events
* blurb add
2022-07-08 14:40:35 +02:00
Pablo Galindo Salgado
40d81fd63b
gh-94510: Raise on re-entrant calls to sys.setprofile and sys.settrace (GH-94511)
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2022-07-05 20:18:47 +02:00
neonene
ea39b77de9
gh-91719: Reload opcode on unknown error so that C can optimize the dispatching in ceval.c ( #94364 )
2022-06-30 08:38:29 -07:00
Mark Shannon
c0453a40fa
GH-94163: Add BINARY_SLICE and STORE_SLICE instructions. (GH-94168)
2022-06-27 12:24:23 +01:00
Mark Shannon
6f8875eba3
GH-93841: Allow stats to be turned on and off, cleared and dumped at runtime. (GH-93843)
2022-06-21 15:40:54 +01:00
Dennis Sweeney
5fcfdd87c9
GH-91432: Specialize FOR_ITER (GH-91713)
...
* Adds FOR_ITER_LIST and FOR_ITER_RANGE specializations.
* Adds _PyLong_AssignValue() internal function to avoid temporary boxing of ints.
2022-06-21 11:19:26 +01:00
Mark Shannon
ab0e601016
GH-93516: Speedup line number checks when tracing. (GH-93763)
...
* Use a lookup table to reduce overhead of getting line numbers during tracing.
2022-06-20 13:00:42 +01:00
Mark Shannon
45e62a2bc1
GH-93897: Store frame size in code object and de-opt if insufficient space on thread frame stack. (GH-93908)
2022-06-20 12:59:25 +01:00
Victor Stinner
27b9894033
gh-93937, C API: Move PyFrame_GetBack() to Python.h ( #93938 )
...
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.
2022-06-19 12:02:33 +02:00
Ken Jin
a51742ab82
gh-93911: Specialize LOAD_ATTR_PROPERTY
(GH-93912)
2022-06-17 23:13:17 +08:00
Victor Stinner
1735710873
gh-77782: Py_FdIsInteractive() now uses PyConfig.interactive ( #93916 )
2022-06-17 15:19:28 +02:00
Ken Jin
ab45c1dde0
Fix BINARY_SUBSCR_GETITEM stats (GH-93903)
2022-06-16 15:02:07 +01:00
Ken Jin
b083450f88
GH-93429: Merge LOAD_METHOD
back into LOAD_ATTR
(GH-93430)
2022-06-14 11:36:22 +01:00
Mark Shannon
3cd1a5d3ec
GH-93516: Store offset of first traceable instruction in code object (GH-93769)
2022-06-14 11:09:30 +01:00
Ken Jin
75260925ec
Fix MSVC compiler warnings in ceval.c ( #93569 )
2022-06-07 11:32:42 +01:00
Mark Shannon
f012df706c
Shrink the LOAD_METHOD cache by one codeunit. ( #93537 )
2022-06-07 10:28:53 +01:00
Dennis Sweeney
f425f3bb27
gh-93143: Avoid NULL check in LOAD_FAST based on analysis in the compiler (GH-93144)
2022-05-31 16:32:30 -04:00
Mark Shannon
eb618d5ff0
GH-93354: Use exponential backoff to avoid excessive specialization attempts. (GH-93355)
2022-05-31 11:58:26 +01:00
Eric Snow
caa279d6fd
bpo-40514: Drop EXPERIMENTAL_ISOLATED_SUBINTERPRETERS (gh-93185)
...
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
2022-05-27 17:38:01 -06:00
Mark Shannon
bbcf42449e
GH-90230: Add stats to breakdown the origin of calls to PyEval_EvalFrame
(GH-93284)
2022-05-27 16:31:41 +01:00
Ken Jin
5e6e5b98a8
gh-92777: Add LOAD_METHOD_LAZY_DICT (GH-92778)
2022-05-25 14:06:15 +01:00
Victor Stinner
5695c0e0a2
gh-91924: Fix __lltrace__ for non-UTF-8 stdout encoding ( #93199 )
...
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().
2022-05-25 11:45:33 +02:00
Mark Shannon
3fd8610002
GH-89914: Make the oparg of the YIELD_VALUE instruction equal the stack depth. (GH-92960)
2022-05-19 17:49:29 +01:00
Mark Shannon
e48ac9c100
GH-90690: Remove PRECALL
instruction (GH-92925)
2022-05-19 11:05:26 +01:00
Mark Shannon
a4460f2eb8
Split refcount stats into 'interpreter' and 'non-interpreter' (GH-92919)
2022-05-18 14:38:43 +01:00
Mark Shannon
fa2b8b75eb
Improve object stats ( #92845 )
...
* Add incref/decref stats
* Show ratios for allocation in summary
2022-05-16 14:35:11 +01:00
Mark Shannon
22a1db378c
GH-92236: Remove spurious "line" event when starting coroutine or generator. (GH-92722)
2022-05-13 11:24:45 +01:00
Crowthebird
bdf9969197
Update outdated LOAD_METHOD
comments in Python/ceval.c
(GH-92641)
2022-05-12 20:37:55 +08:00
Mark Shannon
f8a2fab212
GH-92239: Make sure that PEP 523 is supported, even when specializing first. (GH-92245)
2022-05-04 09:31:21 -06:00
Victor Stinner
d716a0dfe2
Use static inline function Py_EnterRecursiveCall() ( #91988 )
...
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()
2022-05-04 13:30:23 +02:00
Dennis Sweeney
868b1afa05
gh-92063: Enforce types in specialized PRECALL opcodes (GH-92068)
...
* 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
2022-04-30 12:35:33 -06:00
Dennis Sweeney
37c6db60f9
gh-91869: Fix tracing of specialized instructions with extended args (GH-91945)
2022-04-27 22:36:34 -06:00