Yan Yanchii
75103d975c
gh-126835: Move constant tuple folding from ast_opt to CFG ( #130769 )
2025-03-19 20:59:55 +00:00
Irit Katriel
83479c2175
gh-130080: fix warnings in tests ( #131400 )
2025-03-18 12:33:46 +00:00
Victor Stinner
73ab9e2ede
gh-131152: Remove unused imports from tests ( #131153 )
2025-03-13 10:55:23 +01:00
Mark Shannon
014223649c
GH-130396: Use computed stack limits on linux (GH-130398)
...
* Implement C recursion protection with limit pointers for Linux, MacOS and Windows
* Remove calls to PyOS_CheckStack
* Add stack protection to parser
* Make tests more robust to low stacks
* Improve error messages for stack overflow
2025-02-25 09:24:48 +00:00
Petr Viktorin
ef29104f7d
GH-91079: Revert "GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)" for now (GH130413)
...
Revert "GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)" for now
Unfortunatlely, the change broke some buildbots.
This reverts commit 2498c22fa0
.
2025-02-24 11:16:08 +01:00
Mark Shannon
2498c22fa0
GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)
...
* Implement C recursion protection with limit pointers
* Remove calls to PyOS_CheckStack
* Add stack protection to parser
* Make tests more robust to low stacks
* Improve error messages for stack overflow
2025-02-19 11:44:57 +00:00
Yan Yanchii
140e69c4a8
gh-126835: Move const folding of lists & sets from ast_opt.c to flowgraph.c ( #130032 )
2025-02-13 12:11:07 +00:00
Irit Katriel
a1417b211f
gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR ( #129700 )
2025-02-07 22:39:54 +00:00
Sam Gross
a10f99375e
Revert "GH-128914: Remove conditional stack effects from `bytecodes.c` and the code generators (GH-128918)" (GH-129202)
...
The commit introduced a ~2.5-3% regression in the free threading build.
This reverts commit ab61d3f430
.
2025-01-23 09:26:25 +00:00
Mark Shannon
ab61d3f430
GH-128914: Remove conditional stack effects from `bytecodes.c` and the code generators (GH-128918)
2025-01-20 17:09:23 +00:00
Hood Chatham
43634fc1fc
gh-127146: Emscripten: Skip segfaults in test suite ( #127151 )
...
Added skips for tests known to cause problems when running on Emscripten.
These mostly relate to the limited stack depth on Emscripten.
2024-12-05 08:26:25 +08:00
Xuanteng Huang
6ec886531f
gh-126072: Set docstring attribute for module and class ( #126231 )
2024-11-08 15:13:18 +00:00
Michael Droettboom
a38e82bd8c
gh-126298: Don't deduplicate slice constants based on equality ( #126398 )
...
* gh-126298: Don't deduplicated slice constants based on equality
* NULL check for PySlice_New
* Fix refcounting
* Fix refcounting some more
* Fix refcounting
* Make tests more complete
* Fix tests
2024-11-07 16:39:23 +00:00
Xuanteng Huang
35df4eb959
gh-126072: do not add `None` to `co_consts` if there is no docstring (GH-126101)
2024-10-30 09:01:09 +00:00
Mark Shannon
faa3272fb8
GH-125837: Split `LOAD_CONST` into three. (GH-125972)
...
* Add LOAD_CONST_IMMORTAL opcode
* Add LOAD_SMALL_INT opcode
* Remove RETURN_CONST opcode
2024-10-29 11:15:42 +00:00
Michael Droettboom
c6127af868
gh-125063: Emit slices as constants in the bytecode compiler ( #125064 )
...
* Make slices marshallable
* Emit slices as constants
* Update Python/marshal.c
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* Refactor codegen_slice into two functions so it
always has the same net effect
* Fix for free-threaded builds
* Simplify marshal loading of slices
* Only return SUCCESS/ERROR from codegen_slice
---------
Co-authored-by: Mark Shannon <mark@hotpy.org>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2024-10-08 13:18:39 -04:00
Irit Katriel
f474391b26
gh-124871: fix 'visited' tracking in compiler's reachability analysis ( #124952 )
2024-10-04 17:37:38 +01:00
Kirill Podoprigora
1c0bd8bd00
gh-115142: Skip some test cases in ``Lib/test/test_compile`` if ``_testinternalcapi`` is not available ( #124474 )
...
* Skip some test cases if "_testinternalcapi" is not available and if the test suite is
running on another implementation than CPython.
2024-09-30 22:13:23 +03:00
Kira
04c837d9d8
gh-124442: make `__static_attributes__` deterministic by sorting ( #124492 )
...
Signed-off-by: kp2pml30 <kp2pml30@gmail.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-09-28 15:15:43 -07:00
Irit Katriel
78aeb38f7d
gh-124285: Fix bug where bool() is called multiple times for the same part of a boolean expression ( #124394 )
2024-09-25 15:51:25 +01:00
Irit Katriel
a9594a34c6
gh-124022: Fix bug where class docstring is removed in interactive mode ( #124023 )
...
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2024-09-13 14:06:06 +00:00
Irit Katriel
e07154fd1e
gh-123958: apply docstring removal optimization in ast_opt instead of codegen ( #123959 )
2024-09-11 17:02:28 +00:00
Irit Katriel
6e23c89fcd
gh-123942: add missing test for docstring-handling code in ast_opt.c ( #123943 )
2024-09-11 15:39:53 +01:00
Irit Katriel
ec89620e5e
gh-123142: Fix too wide source locations in tracebacks of exceptions from broken iterables in comprehensions ( #123173 )
2024-08-21 19:12:05 +01:00
Irit Katriel
498376d7a7
gh-122445: populate only modified fields in __static_attributes__ ( #122446 )
2024-08-02 15:40:42 +01:00
Irit Katriel
55596ae044
gh-98442: fix locations of with statement's cleanup instructions ( #120763 )
...
gh-98442: fix location of with statement's cleanup instructions
2024-06-20 09:32:06 +01:00
Jelle Zijlstra
d8f27cb114
gh-120722: Set position on RETURN_VALUE in lambda ( #120724 )
2024-06-19 05:56:36 -07:00
Irit Katriel
b7f478948f
gh-120367: fix bug where compiler detects redundant jump after pseudo op replacement ( #120714 )
2024-06-18 22:09:23 +00:00
Victor Stinner
e9f4d80fa6
gh-120417: Add #noqa: F401 to tests ( #120627 )
...
Ignore linter "imported but unused" warnings in tests when the linter
doesn't understand how the import is used.
2024-06-18 15:51:47 +00:00
Irit Katriel
21866c8ed2
gh-120367: fix removal of redundant NOPs and jumps after reordering hot-cold blocks ( #120425 )
2024-06-17 10:10:06 +00:00
Irit Katriel
4fc82b6d3b
gh-120225: fix crash in compiler on empty block at end of exception handler ( #120235 )
2024-06-07 22:37:35 +01:00
Jelle Zijlstra
98e855fcc1
gh-119180: Add LOAD_COMMON_CONSTANT opcode ( #119321 )
...
The PEP 649 implementation will require a way to load NotImplementedError
from the bytecode. @markshannon suggested implementing this by converting
LOAD_ASSERTION_ERROR into a more general mechanism for loading constants.
This PR adds this new opcode. I will work on the rest of the implementation
of the PEP separately.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2024-05-22 00:46:39 +00:00
Serhiy Storchaka
153b3f7530
gh-118465: Add __firstlineno__ attribute to class (GH-118475)
...
It is set by compiler with the line number of the first line of
the class definition.
2024-05-06 12:02:37 +03:00
Irit Katriel
c179c0e6cb
gh-117680: make _PyInstructionSequence a PyObject and use it in tests ( #117629 )
2024-04-17 16:42:04 +01:00
Erlend E. Aasland
ca62ffd1a5
gh-116303: Skip tests if C recursion limit is unavailable (GH-117368)
...
The test suite fetches the C recursion limit from the _testcapi
extension module. Test extension modules can be disabled using the
--disable-test-modules configure option.
2024-04-08 14:45:25 +02:00
Irit Katriel
79be75735c
gh-115775: Compiler adds __static_attributes__ field to classes ( #115913 )
2024-03-26 15:18:17 +00:00
Kirill Podoprigora
6a86030bc2
gh-116100: Add `test` arg to `ast.If` and `op` arg to `ast.BoolOp` calls ( #116101 )
2024-02-29 06:59:24 -08:00
Serhiy Storchaka
7b25a82e83
Fix test_compile with -O mode (GH-115346)
2024-02-19 19:02:29 +02:00
Irit Katriel
732faf17a6
gh-115347: avoid emitting redundant NOP for the docstring with -OO ( #115494 )
2024-02-15 14:20:19 +00:00
Irit Katriel
2091fb2a85
gh-107901: make compiler inline basic blocks with no line number and no fallthrough ( #114750 )
2024-02-02 11:26:31 +00:00
Irit Katriel
ed30a3c337
gh-114083: apply optimization of LOAD_CONST instructions to the whole CFG before optimize_basic_block. ( #114408 )
2024-01-22 17:12:06 +00:00
Mark Shannon
17b73ab99e
GH-113655: Lower the C recursion limit on various platforms (GH-113944)
2024-01-16 09:32:01 +00:00
Irit Katriel
8aa0088ea2
gh-107901: duplicate blocks with no lineno that have an eval break and multiple predecessors ( #113950 )
2024-01-12 15:38:09 +00:00
Kirill Podoprigora
9f088336b2
gh-113932: assert ``SyntaxWarning`` in test_compile.TestSpecifics.test_… ( #113933 )
2024-01-11 11:25:07 +00:00
Irit Katriel
7d01fb4808
gh-113603: Compiler no longer tries to maintain the no-empty-block invariant ( #113636 )
2024-01-03 16:57:48 +00:00
Irit Katriel
e51b400945
gh-113054: Compiler no longer replaces a redundant jump with no line number by a NOP ( #113139 )
2023-12-19 11:04:44 +00:00
Irit Katriel
428c9812cb
gh-112962: in dis module, put cache information in the Instruction instead of creating fake Instructions to represent it ( #113016 )
2023-12-13 12:00:21 +00:00
Irit Katriel
b578e51f02
gh-111123: symtable should visit exception handlers before the else block ( #111142 )
2023-10-21 13:38:29 +01:00
Irit Katriel
f580edcc6a
gh-109889: fix compiler's redundant NOP detection to look past NOPs with no lineno when looking for the next instruction's lineno ( #109987 )
2023-09-28 20:33:28 +01:00
Irit Katriel
d73c12b88c
gh-109823: Adjust labels in compiler when removing an empty basic block which is a jump target ( #109839 )
2023-09-25 18:25:05 +00:00