Mark Shannon
76449350b3
GH-91079: Decouple C stack overflow checks from Python recursion checks. (GH-96510)
2022-10-05 01:34:03 +01:00
Victor Stinner
116fa62c6e
gh-97670: Remove sys.getdxp() and analyze_dxp.py script ( #97671 )
...
Remove the sys.getdxp() function and the Tools/scripts/analyze_dxp.py
script. DXP stands for "dynamic execution pairs". They were related
to DYNAMIC_EXECUTION_PROFILE and DXPAIRS macros which have been
removed in Python 3.11. Python can now be built with "./configure
--enable-pystats" to gather statistics on Python opcodes.
2022-10-04 15:28:57 +02:00
Brandt Bucher
8fd2c3b75b
GH-96975: Skip incomplete frames in PyEval_GetFrame (GH-97003)
2022-09-22 09:16:52 -07:00
serge-sans-paille
fc05107af9
gh-96711: Enhance SystemError message upon Invalid opcode ( #96712 )
...
Raise verbose SystemError instead of printing debug information
upon Invalid opcode.
Fix #96711
2022-09-20 12:00:34 +02:00
Brandt Bucher
c10e33ac11
GH-96864: Check for error between line and opcode events (GH-96880)
2022-09-19 14:02:24 -07:00
adphrost
a41ed975e8
GH-91049: Introduce set vectorcall field API for PyFunctionObject (GH-92257)
...
Co-authored-by: Andrew Frost <adfrost@fb.com>
Co-authored-by: Itamar Ostricher <itamarost@gmail.com>
2022-09-15 16:42:37 +01:00
Nikita Sobolev
e37ac5fbb6
gh-96751: Remove dead code from `CALL_FUNCTION_EX` opcode (GH-96752)
2022-09-15 10:33:13 +01:00
Kevin Modzelewski
4781535a57
ceval: Use _PyTuple_FromArraySteal in BUILD_TUPLE (GH-96516)
2022-09-14 12:44:32 +09:00
Mark Shannon
12c5f328d2
GH-96754: Check whether the interpreter frame is complete before creating frame object. (GH-96776)
2022-09-13 09:25:16 +01:00
Mark Shannon
50a70a083d
GH-96678: Fix undefined behavior in ceval.c ( #96708 )
2022-09-10 01:12:06 +01:00
Brandt Bucher
72b29b2611
Replace ad-hoc labels with JUMP_TO_INSTRUCTION (GH-96634)
2022-09-09 14:43:10 -07:00
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