Thomas Grainger
fc7e1aa3c0
GH-117881: fix athrow().throw()/asend().throw() concurrent access (GH-117882)
2024-05-01 08:44:01 +02:00
Dino Viehland
4a1cf66c5c
gh-117657: Fix small issues with instrumentation and TSAN ( #118064 )
...
Small TSAN fixups for instrumentation
2024-04-30 11:38:05 -07:00
Irit Katriel
1f16b4ce56
gh-118272: Clear generator frame's locals when the generator is closed ( #118277 )
...
Co-authored-by: Thomas Grainger <tagrain@gmail.com>
2024-04-30 19:32:25 +01:00
Thomas Grainger
7d369d471c
GH-117536: GH-117894: fix athrow().throw(...) unawaited warning (GH-117851)
2024-04-24 14:20:19 +02:00
Donghee Na
8db8d7118e
gh-111968: Split _Py_async_gen_asend_freelist out of _Py_async_gen_fr… (gh-115546)
2024-02-17 10:03:10 +09:00
Donghee Na
f15795c9a0
gh-111968: Rename freelist related struct names to Eric's suggestion (gh-115329)
2024-02-14 00:32:51 +00:00
Donghee Na
d4d5bae147
gh-111968: Refactor _PyXXX_Fini to integrate with _PyObject_ClearFreeLists (gh-114899)
2024-02-10 00:57:04 +00:00
Donghee Na
13907968d7
gh-111968: Use per-thread freelists for dict in free-threading (gh-114323)
2024-02-01 20:53:53 +00:00
Donghee Na
699779256e
gh-111968: Unify freelist naming schema to Eric's suggestion (gh-114581)
2024-01-27 00:25:16 +09:00
Donghee Na
7fa511ba57
gh-111968: Use per-thread freelists for generator in free-threading (gh-114189)
2024-01-18 18:15:00 +00:00
Sam Gross
73ae2023a7
gh-113753: Clear finalized bit when putting PyAsyncGenASend back into free list ( #113754 )
2024-01-10 10:18:38 -08:00
Irit Katriel
bfb576ee23
gh-111058: Change coro.cr_frame/gen.gi_frame to be None for a closed coroutine/generator. ( #112428 )
2023-12-01 12:57:31 +00:00
Irit Katriel
30ec968bef
gh-111354: remove comparisons with enum values, variable reuse, unused imports in genobject.c ( #111708 )
2023-11-09 10:27:20 +00:00
Irit Katriel
d49aba5a7a
gh-111354: Simplify _PyGen_yf by moving some of its work to the compiler and frame state ( #111648 )
2023-11-03 10:01:36 +00:00
Irit Katriel
52cc4af6ae
gh-111354: simplify detection of RESUME after YIELD_VALUE at except-depth 1 ( #111459 )
2023-11-02 10:18:43 +00:00
Irit Katriel
a0c414c35d
gh-111354: define names for RESUME oparg values ( #111365 )
2023-10-26 16:30:18 +01:00
Irit Katriel
67a91f78e4
gh-109094: replace frame->prev_instr by frame->instr_ptr ( #109095 )
2023-10-26 13:43:10 +00:00
Irit Katriel
0db2517687
gh-100762: Fix optimization in gen_close ( #111069 )
2023-10-25 16:22:34 +01:00
Victor Stinner
be5e8a0103
gh-110964: Remove private _PyArg functions ( #110966 )
...
Move the following private functions and structures to
pycore_modsupport.h internal C API:
* _PyArg_BadArgument()
* _PyArg_CheckPositional()
* _PyArg_NoKeywords()
* _PyArg_NoPositional()
* _PyArg_ParseStack()
* _PyArg_ParseStackAndKeywords()
* _PyArg_Parser structure
* _PyArg_UnpackKeywords()
* _PyArg_UnpackKeywordsWithVararg()
* _PyArg_UnpackStack()
* _Py_ANY_VARARGS()
Changes:
* Python/getargs.h now includes pycore_modsupport.h to export
functions.
* clinic.py now adds pycore_modsupport.h when one of these functions
is used.
* Add pycore_modsupport.h includes when a C extension uses one of
these functions.
* Define Py_BUILD_CORE_MODULE in C extensions which now include
directly or indirectly (via code generated by Argument Clinic)
pycore_modsupport.h:
* _csv
* _curses_panel
* _dbm
* _gdbm
* _multiprocessing.posixshmem
* _sqlite.row
* _statistics
* grp
* resource
* syslog
* _testcapi: bad_get() no longer uses METH_FASTCALL calling
convention but METH_VARARGS. Replace _PyArg_UnpackStack() with
PyArg_ParseTuple().
* _testcapi: add PYTESTCAPI_NEED_INTERNAL_API macro which is defined
by _testcapi sub-modules which need the internal C API
(pycore_modsupport.h): exceptions.c, float.c, vectorcall.c,
watchers.c.
* Remove Include/cpython/modsupport.h header file.
Include/modsupport.h no longer includes the removed header file.
* Fix mypy clinic.py
2023-10-17 14:30:31 +02:00
Mark Shannon
0858328ca2
GH-108614: Add `RESUME_CHECK` instruction (GH-108630)
2023-09-07 14:39:03 +01:00
Mark Shannon
006e44f950
GH-108035: Remove the `_PyCFrame` struct as it is no longer needed for performance. (GH-108036)
2023-08-17 11:16:03 +01:00
Mark Shannon
0d30a5a409
GH-100964: Break cycles involving exception state when returning from generator (GH-107563)
2023-08-02 18:44:20 +01:00
Victor Stinner
1a3faba9f1
gh-106869: Use new PyMemberDef constant names ( #106871 )
...
* Remove '#include "structmember.h"'.
* If needed, add <stddef.h> to get offsetof() function.
* Update Parser/asdl_c.py to regenerate Python/Python-ast.c.
* Replace:
* T_SHORT => Py_T_SHORT
* T_INT => Py_T_INT
* T_LONG => Py_T_LONG
* T_FLOAT => Py_T_FLOAT
* T_DOUBLE => Py_T_DOUBLE
* T_STRING => Py_T_STRING
* T_OBJECT => _Py_T_OBJECT
* T_CHAR => Py_T_CHAR
* T_BYTE => Py_T_BYTE
* T_UBYTE => Py_T_UBYTE
* T_USHORT => Py_T_USHORT
* T_UINT => Py_T_UINT
* T_ULONG => Py_T_ULONG
* T_STRING_INPLACE => Py_T_STRING_INPLACE
* T_BOOL => Py_T_BOOL
* T_OBJECT_EX => Py_T_OBJECT_EX
* T_LONGLONG => Py_T_LONGLONG
* T_ULONGLONG => Py_T_ULONGLONG
* T_PYSSIZET => Py_T_PYSSIZET
* T_NONE => _Py_T_NONE
* READONLY => Py_READONLY
* PY_AUDIT_READ => Py_AUDIT_READ
* READ_RESTRICTED => Py_AUDIT_READ
* PY_WRITE_RESTRICTED => _Py_WRITE_RESTRICTED
* RESTRICTED => (READ_RESTRICTED | _Py_WRITE_RESTRICTED)
2023-07-25 15:28:30 +02:00
Serhiy Storchaka
be1b968dc1
gh-106521: Remove _PyObject_LookupAttr() function (GH-106642)
2023-07-12 08:57:10 +03:00
Mark Shannon
7199584ac8
GH-100987: Allow objects other than code objects as the "executable" of an 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.
2023-06-14 13:46:37 +01:00
Mark Shannon
601ae09f0c
GH-105162: Account for `INSTRUMENTED_RESUME` in gen.close/throw. (GH-105187)
2023-06-02 10:39:38 +01:00
Irit Katriel
60f8117d0c
gh-105140: remove unused arg of _PyErr_ChainStackItem ( #105141 )
2023-06-01 20:57:28 +00:00
Kumar Aditya
7fc542c88d
GH-89091: raise `RuntimeWarning` for unawaited async generator methods ( #104611 )
2023-05-26 16:53:29 +05:30
Nicolas Tessore
d56c933992
gh-104770: Let generator.close() return value ( #104771 )
...
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2023-05-23 13:51:56 -07:00
penguin_wwy
373bca0cc5
GH-102181: Improve specialization stats for SEND (GH-102182)
2023-05-10 22:40:59 +00:00
Mark Shannon
a0df9ee8fc
GH-96803: Add three C-API functions to make _PyInterpreterFrame less opaque for users of PEP 523. (GH-96849)
2023-05-05 17:53:07 +01:00
Thomas Krennwallner
ced13c96a4
gh-79940: add introspection API for asynchronous generators to `inspect` module ( #11590 )
2023-03-11 18:49:40 +05:30
Irit Katriel
11a2c6ce51
gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (in Objects/) ( #102218 )
2023-03-08 17:03:18 +00:00
Kumar Aditya
e499680100
fix typo in async generator code field name `ag_code` ( #102448 )
2023-03-08 09:09:50 +05:30
Mark Shannon
22b8d77b98
GH-100719: Remove redundant `gi_code` field from generator object. (GH-100749)
2023-02-23 10:19:01 +00:00
Steve Dower
a99eb5cd99
gh-101907: Stop using `_Py_OPCODE` and `_Py_OPARG` macros (GH-101912)
...
* gh-101907: Removes use of non-standard C++ extension from Include/cpython/code.h
* Make cases_generator correct on Windows
2023-02-20 14:56:48 +00:00
Mark Shannon
f02fa64bf2
GH-100762: Don't call `gen.throw()` in `gen.close()`, unless necessary. (GH-101013)
...
* Store exception stack depth in YIELD_VALUE's oparg and use it avoid expensive gen.throw() in gen.close() where possible.
2023-01-24 17:25:37 +00:00
Brandt Bucher
61762b9387
GH-100126: Skip incomplete frames in more places (GH-100613)
2023-01-09 12:20:04 -08:00
Mark Shannon
78068126a1
GH-99005: More intrinsics (GH-100774)
...
* Remove UNARY_POSITIVE, LIST_TO_TUPLE and ASYNC_GEN_WRAP, replacing them with intrinsics.
2023-01-06 14:47:57 +00:00
Irit Katriel
c31e356a10
gh-100720: refactor calculation of number of frame slots for a code object into the new function _PyFrame_NumSlotsForCodeObject ( #100722 )
2023-01-04 13:37:06 +00:00
Victor Stinner
135ec7cefb
gh-99537: Use Py_SETREF() function in C code ( #99657 )
...
Fix potential race condition in code patterns:
* Replace "Py_DECREF(var); var = new;" with "Py_SETREF(var, new);"
* Replace "Py_XDECREF(var); var = new;" with "Py_XSETREF(var, new);"
* Replace "Py_CLEAR(var); var = new;" with "Py_XSETREF(var, new);"
Other changes:
* Replace "old = var; var = new; Py_DECREF(var)"
with "Py_SETREF(var, new);"
* Replace "old = var; var = new; Py_XDECREF(var)"
with "Py_XSETREF(var, new);"
* And remove the "old" variable.
2022-11-22 13:39:11 +01:00
Victor Stinner
8211cf5d28
gh-99300: Replace Py_INCREF() with Py_NewRef() ( #99530 )
...
Replace Py_INCREF() and Py_XINCREF() using a cast with Py_NewRef()
and Py_XNewRef().
2022-11-16 18:34:24 +01:00
Victor Stinner
584e55bd34
gh-99300: Use Py_NewRef() in Objects/ directory ( #99335 )
...
Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and
Py_XNewRef() in C files of the Objects/ directory.
2022-11-10 22:22:02 +01:00
Mark Shannon
1e197e63e2
GH-96421: Insert shim frame on entry to interpreter (GH-96319)
...
* Adds EXIT_INTERPRETER instruction to exit PyEval_EvalDefault()
* Simplifies RETURN_VALUE, YIELD_VALUE and RETURN_GENERATOR instructions as they no longer need to check for entry frames.
2022-11-10 12:34:57 +00:00
Mark Shannon
4a1c58d504
GH-96793: Specialize FOR_ITER for generators. (GH-98772)
2022-11-07 14:49:51 +00:00
Mark Shannon
f4adb97506
GH-96793: Implement PEP 479 in bytecode. (GH-99006)
...
* Handle converting StopIteration to RuntimeError in bytecode.
* Add custom instruction for converting StopIteration into RuntimeError.
2022-11-03 11:38:51 +00:00
Brandt Bucher
276d77724f
GH-98686: Quicken everything (GH-98687)
2022-11-02 10:42:57 -07:00
Ofey Chan
83a3de4e06
gh-96348: Deprecate the 3-arg signature of coroutine.throw and generator.throw (GH-96428)
2022-09-30 09:43:02 +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
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