Irit Katriel
c179c0e6cb
gh-117680: make _PyInstructionSequence a PyObject and use it in tests ( #117629 )
2024-04-17 16:42:04 +01:00
Irit Katriel
04697bcfaf
gh-117494: extract the Instruction Sequence data structure into a separate file ( #117496 )
2024-04-04 15:47:26 +00:00
Irit Katriel
1d5479b236
gh-117411: move PyFutureFeatures to pycore_symtable.h and make it private ( #117412 )
2024-04-02 10:34:49 +00:00
Irit Katriel
262fb911ab
gh-117288: Allocate fewer label IDs in _PyCfg_ToInstructionSequence ( #117290 )
2024-03-27 17:38:19 +00:00
Irit Katriel
79be75735c
gh-115775: Compiler adds __static_attributes__ field to classes ( #115913 )
2024-03-26 15:18:17 +00:00
Bogdan Romanyuk
a8e93d3dca
gh-115756: make PyCode_GetFirstFree an unstable API (GH-115781)
2024-03-19 09:20:38 +00:00
Serhiy Storchaka
acd6f41ecf
gh-111789: Use PyDict_GetItemRef() in Python/compile.c (GH-112083)
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-02-23 12:35:27 +01:00
Irit Katriel
3a9e67a9fd
gh-115376: fix segfault in _testinternalcapi.compiler_codegen on bad input ( #115379 )
2024-02-15 14:32:21 +00:00
Irit Katriel
732faf17a6
gh-115347: avoid emitting redundant NOP for the docstring with -OO ( #115494 )
2024-02-15 14:20:19 +00:00
Sam Gross
ef3ceab09d
gh-112066: Use `PyDict_SetDefaultRef` in place of `PyDict_SetDefault`. ( #112211 )
...
This changes a number of internal usages of `PyDict_SetDefault` to use `PyDict_SetDefaultRef`.
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2024-02-07 13:43:18 -05:00
Erlend E. Aasland
8612230c1c
gh-114569: Use PyMem_* APIs for non-PyObjects in compiler ( #114587 )
2024-01-30 00:04:34 +01:00
Mark Shannon
981d172f7f
GH-112354: `END_FOR` instruction to only pop one value. (GH-114247)
...
* Compiler emits END_FOR; POP_TOP instead of END_FOR. To support tier 2 side exits in loops.
2024-01-24 15:10:17 +00:00
Irit Katriel
d36a365118
gh-107901: synthetic jumps which are not at end of loop no longer check the eval breaker ( #113721 )
2024-01-06 14:20:08 +00:00
Mark Shannon
e96f26083b
GH-111485: Generate instruction and uop metadata (GH-113287)
2023-12-20 14:27:25 +00:00
Irit Katriel
fb202af447
gh-99606: Make code generated for an empty f-string identical to that of a normal empty string ( #112407 )
2023-11-26 17:13:57 +00:00
Irit Katriel
36aab34fab
gh-107149: make new opcode util functions private rather than public and unstable ( #112042 )
2023-11-14 00:31:02 +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
Serhiy Storchaka
970e719a7a
gh-108082: Use PyErr_FormatUnraisable() (GH-111580)
...
Replace most of calls of _PyErr_WriteUnraisableMsg() and some
calls of PyErr_WriteUnraisable(NULL) with PyErr_FormatUnraisable().
Co-authored-by: Victor Stinner <vstinner@python.org>
2023-11-02 09:16:34 +00:00
Irit Katriel
a0c414c35d
gh-111354: define names for RESUME oparg values ( #111365 )
2023-10-26 16:30:18 +01:00
Irit Katriel
4a54074a0f
gh-105658: fix excess trace events for except block ending with a conditional block ( #109384 )
2023-09-14 17:06:08 +01:00
Brandt Bucher
22e65eecaa
GH-105848: Replace KW_NAMES + CALL with LOAD_CONST + CALL_KW (GH-109300)
2023-09-13 10:25:45 -07:00
Carl Meyer
ceeb4173ae
gh-109195: fix source location for super load before LOAD_SUPER_ATTR ( #109289 )
2023-09-11 17:35:49 -06:00
Victor Stinner
676593859e
gh-106320: Remove private _PyErr_WriteUnraisableMsg() ( #108863 )
...
Move the private _PyErr_WriteUnraisableMsg() functions to the
internal C API (pycore_pyerrors.h).
Move write_unraisable_exc() from _testcapi to _testinternalcapi.
2023-09-05 01:54:55 +02:00
Carl Meyer
d52c4482a8
gh-108654: restore comprehension locals before handling exception ( #108659 )
...
Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
2023-08-30 17:50:50 -06:00
Irit Katriel
72119d16a5
gh-105481: remove regen-opcode. Generated _PyOpcode_Caches in regen-cases. ( #108367 )
2023-08-23 18:39:00 +01:00
Victor Stinner
f5559f38d9
gh-108308: Replace PyDict_GetItem() with PyDict_GetItemRef() ( #108309 )
...
Replace PyDict_GetItem() calls with PyDict_GetItemRef()
or PyDict_GetItemWithError() to handle errors.
* Replace PyLong_AS_LONG() with _PyLong_AsInt()
and check for errors.
* Check for PyDict_Contains() error.
* pycore_init_builtins() checks for _PyType_Lookup() failure.
2023-08-23 17:40:26 +02:00
Irit Katriel
2dfbd4f36d
gh-108113: Make it possible to optimize an AST ( #108282 )
2023-08-23 09:01:17 +01:00
Nikita Sobolev
bdd8ddfda1
gh-105724: Add location information to `assert` errors (GH-105935)
2023-08-16 11:35:38 +01:00
Irit Katriel
bafedfbebd
gh-106149: move CFG and basicblock definitions into flowgraph.c, use them as opaque types in compile.c ( #107639 )
2023-08-10 13:03:47 +01:00
Brandt Bucher
a9caf9cf90
GH-105848: Simplify the arrangement of CALL's stack (GH-107788)
2023-08-09 18:19:39 +00:00
Irit Katriel
507d8bc39a
gh-106149: fix comment on stackdepth of generators ( #107321 )
2023-07-26 22:31:47 +00:00
Irit Katriel
b0202a4e5d
gh-106149: Simplify stack depth calculation. Replace asserts by exceptions. ( #107255 )
2023-07-26 13:32:47 +01:00
Victor Stinner
2e0744955f
gh-107211: Rename PySymtable_Lookup() to _PySymtable_Lookup() ( #107212 )
...
Rename the internal PySymtable_Lookup() function to
_PySymtable_Lookup() and no longer export it.
2023-07-25 00:54:09 +00:00
Victor Stinner
5e4af2a3e9
gh-106320: Move private _PySet API to the internal API ( #107041 )
...
* Add pycore_setobject.h header file.
* Move the following API to the internal C API:
* _PySet_Dummy
* _PySet_NextEntry()
* _PySet_Update()
2023-07-22 17:04:34 +02:00
Kirill Podoprigora
85ed1d2442
gh-106916: Add missing error check _PyCompile_CleanDoc ( #106921 )
...
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-07-21 13:56:58 +09:00
Irit Katriel
40f3f11a77
gh-105481: Generate the opcode lists in dis from data extracted from bytecodes.c ( #106758 )
2023-07-18 19:42:44 +01:00
Inada Naoki
ece3b9d12a
gh-106843: fix memleak in _PyCompile_CleanDoc ( #106846 )
2023-07-18 03:44:16 +00:00
Inada Naoki
2566b74b26
gh-81283: compiler: remove indent from docstring ( #106411 )
...
Co-authored-by: Éric <merwok@netwok.org>
2023-07-15 19:33:32 +09:00
Irit Katriel
6a70edf24c
gh-105481: expose opcode metadata via the _opcode module ( #106688 )
2023-07-14 18:41:52 +01:00
Irit Katriel
2ca008e2b7
gh-105481: move Python/opcode_metadata.h to Include/internal/pycore_opcode_metadata.h ( #106673 )
2023-07-12 11:30:25 +01:00
Victor Stinner
8571b271e7
gh-106320: Remove private _PyInterpreterState functions ( #106325 )
...
Remove private _PyThreadState and _PyInterpreterState C API
functions: move them to the internal C API (pycore_pystate.h and
pycore_interp.h). Don't export most of these functions anymore, but
still export functions used by tests.
Remove _PyThreadState_Prealloc() and _PyThreadState_Init() from the C
API, but keep it in the stable API.
2023-07-02 01:39:38 +00:00
Brandt Bucher
7b2d94d875
GH-106008: Make implicit boolean conversions explicit (GH-106003)
2023-06-29 13:49:54 -07:00
hms
8bff940ad6
gh-105775: Convert LOAD_CLOSURE to a pseudo-op ( #106059 )
...
This enables super-instruction formation,
removal of checks for uninitialized variables,
and frees up an instruction.
2023-06-29 09:34:00 -07:00
Irit Katriel
5290881009
gh-106149: move jump target resolution from optimizer to assembler ( #106150 )
2023-06-27 20:24:58 +01:00
Mark Shannon
04492cbc9a
GH-91095: Specialize calls to normal Python classes. (GH-99331)
2023-06-22 09:48:19 +01:00
Crowthebird
28187a9c4f
gh-105908: fix `barry_as_FLUFL` future import ( #105909 )
2023-06-19 22:50:57 +01:00
Irit Katriel
14d01262da
gh-105481: remove HAS_ARG, HAS_CONST, IS_JUMP_OPCODE, IS_PSEUDO_OPCODE and replace by their new versions ( #105865 )
2023-06-17 17:00:16 +01:00
Irit Katriel
d1b0297d3e
gh-105481: add HAS_JUMP flag to opcode metadata ( #105791 )
2023-06-14 23:14:22 +00:00
Mark Shannon
1d857da7f0
GH-77273: Better bytecodes for f-strings (GH-6132)
2023-06-14 16:15:08 +01:00