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
Irit Katriel
7c55399172
gh-109719: Fix missing jump target labels when compiler reorders cold/warm blocks ( #109734 )
2023-09-22 16:59:35 +00:00
Irit Katriel
9ccf0545ef
gh-109627: duplicated smalll exit blocks need to be assigned jump target labels ( #109630 )
2023-09-20 23:08:06 +00:00
Jelle Zijlstra
987b4bc087
gh-109341: Fix crash on compiling invalid AST including TypeAlias ( #109349 )
2023-09-13 09:00:39 -07:00
Jelle Zijlstra
79101edb03
gh-109351: Fix crash when compiling AST with invalid NamedExpr ( #109352 )
2023-09-13 09:00:15 -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
b0edf3b98e
GH-91079: Rename C_RECURSION_LIMIT to Py_C_RECURSION_LIMIT ( #108507 )
...
Symbols of the C API should be prefixed by "Py_" to avoid conflict
with existing names in 3rd party C extensions on "#include <Python.h>".
test.pythoninfo now logs Py_C_RECURSION_LIMIT constant and other
_testcapi and _testinternalcapi constants.
2023-09-08 09:48:28 +00:00
Serhiy Storchaka
f3ba0a74cd
gh-108416: Mark slow test methods with @requires_resource('cpu') (GH-108421)
...
Only mark tests which spend significant system or user time,
by itself or in subprocesses.
2023-09-02 07:45:34 +03:00
Irit Katriel
a1cc74c4ee
gh-107901: Fix missing line number on BACKWARD_JUMP at the end of a for loop ( #108242 )
2023-08-21 23:44:31 +01:00
Nikita Sobolev
bdd8ddfda1
gh-105724: Add location information to `assert` errors (GH-105935)
2023-08-16 11:35:38 +01:00
Mark Shannon
fa45958450
GH-107263: Increase C stack limit for most functions, except `_PyEval_EvalFrameDefault()` (GH-107535)
...
* Set C recursion limit to 1500, set cost of eval loop to 2 frames, and compiler mutliply to 2.
2023-08-04 10:10:29 +01:00
Dong-hee Na
115df8491a
gh-104635: Add a test case for variables that have a dependency. (gh-106583)
2023-07-11 10:14:53 +09:00
Carl Meyer
0589c6a4d3
gh-104615: don't make unsafe swaps in apply_static_swaps ( #104620 )
2023-05-18 21:22:03 +00:00
Carl Meyer
c3b595e73e
gh-97933: (PEP 709) inline list/dict/set comprehensions ( #101441 )
...
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2023-05-09 11:02:14 -06:00
Brandt Bucher
0444ae2487
GH-100982: Break up COMPARE_AND_BRANCH (GH-102801)
2023-03-23 15:25:09 -07:00
Irit Katriel
36b139af63
gh-101951: use textwrap.dedent in compiler tests to make them more readable (GH-101950)
...
Fixes #101951 .
Automerge-Triggered-By: GH:iritkatriel
2023-02-16 04:31:59 -08:00
penguin_wwy
df7ccf6138
gh-101928: fix crash in compiler on multi-line lambda in function call ( #101933 )
2023-02-16 11:31:41 +00:00
penguin_wwy
753fc8a5d6
gh-101632: Add the new RETURN_CONST opcode ( #101633 )
2023-02-07 22:32:21 +00:00
Irit Katriel
e9ccfe4a63
gh-100712: make it possible to disable specialization (for debugging) ( #100713 )
2023-01-19 18:14:55 +00:00
Mark Shannon
7b14c2ef19
GH-100982: Add `COMPARE_AND_BRANCH` instruction (GH-100983)
2023-01-16 12:35:21 +00:00
Brandt Bucher
f07daaf4f7
GH-100117: Make `co_lines` more efficient (GH-100447)
2023-01-10 10:56:53 +00:00
Irit Katriel
ae185fdcca
gh-99708: fix bug where compiler crashes on if expression with an empty body block (GH-99732)
2022-11-24 10:59:07 +00:00
Irit Katriel
fb844e1931
gh-98762: Fix locations of match sub-patterns (GH-98775)
2022-11-12 18:42:17 +00:00
Irit Katriel
3dd6ee2c00
gh-99254: remove all unused consts from code objects (GH-99255)
2022-11-11 10:53:43 +00:00
Carl Meyer
027bc7e6bb
gh-94445: add compiler test for another case of excessive stack use (GH-99237)
2022-11-08 20:39:32 +00:00
Irit Katriel
a1a8828e42
gh-98461: Fix location of RETURN_VALUE in async generator bytecode. compiler_jump_if no longer needs a pointer to the loc. (GH-98494)
2022-10-25 12:26:26 +01:00
Irit Katriel
4ec9ed8fde
gh-98461: Fix source location in comprehensions bytecode (GH-98464)
2022-10-20 16:58:37 +01:00
Irit Katriel
9be05df399
gh-98398: Fix source locations for 'assert' bytecode (GH-98405)
2022-10-19 10:48:50 +01:00
Irit Katriel
c051d55ddb
gh-98390: Fix source locations of boolean sub-expressions (GH-98396)
2022-10-18 17:18:38 +01:00
Victor Stinner
db03c8066a
gh-98393: os module reject bytes-like, only accept bytes ( #98394 )
...
The os module and the PyUnicode_FSDecoder() function no longer accept
bytes-like paths, like bytearray and memoryview types: only the exact
bytes type is accepted for bytes strings.
2022-10-18 17:52:31 +02:00
Irit Katriel
c529b45122
gh-87092: bring compiler code closer to a preprocessing-opt-assembler organisation (GH-97644)
2022-10-05 08:52:35 +01:00
Mark Shannon
76449350b3
GH-91079: Decouple C stack overflow checks from Python recursion checks. (GH-96510)
2022-10-05 01:34:03 +01:00
Pablo Galindo Salgado
aab01e3524
gh-96670: Raise SyntaxError when parsing NULL bytes ( #97594 )
2022-09-27 23:23:42 +01:00
Brandt Bucher
dfc73b5724
GH-95921: Fix positions for some chained comparisons (GH-96968)
2022-09-20 12:22:24 -07:00
Gregory P. Smith
511ca94520
gh-95778: CVE-2020-10735: Prevent DoS by very large int() ( #96499 )
...
Integer to and from text conversions via CPython's bignum `int` type is not safe against denial of service attacks due to malicious input. Very large input strings with hundred thousands of digits can consume several CPU seconds.
This PR comes fresh from a pile of work done in our private PSRT security response team repo.
Signed-off-by: Christian Heimes [Red Hat] <christian@python.org>
Tons-of-polishing-up-by: Gregory P. Smith [Google] <greg@krypto.org>
Reviews via the private PSRT repo via many others (see the NEWS entry in the PR).
<!-- gh-issue-number: gh-95778 -->
* Issue: gh-95778
<!-- /gh-issue-number -->
I wrote up [a one pager for the release managers](https://docs.google.com/document/d/1KjuF_aXlzPUxTK4BMgezGJ2Pn7uevfX7g0_mvgHlL7Y/edit# ). Much of that text wound up in the Issue. Backports PRs already exist. See the issue for links.
2022-09-02 09:35:08 -07:00
Irit Katriel
1e743616ac
gh-96276: suppress SyntaxWarning in test_compile (GH-96277)
2022-08-25 22:23:06 +01:00
Brandt Bucher
c7e5bbaee8
GH-95150: Use position and exception tables for code hashing and equality (GH-95509)
2022-08-01 11:02:56 -07:00
Christian Heimes
51c56f8d72
gh-93678: Address stack exhaustion on WASI (GH-95296)
2022-07-26 22:14:35 +02:00
Brandt Bucher
900bfc53cb
GH-94036: Fix more attribute location quirks (GH-95028)
2022-07-22 13:13:16 -07:00
Brandt Bucher
742d4614e1
GH-91409: Don't overwrite valid locations with NOP locations (GH-95067)
2022-07-20 14:27:31 -07:00
Brandt Bucher
264b3ddfd5
GH-94694: Fix column offsets for multi-line method lookups (GH-94697)
2022-07-09 17:22:23 -07:00
Irit Katriel
324d01944d
gh-94485: Set line number of module's RESUME instruction to 0, as specified by PEP 626 (GH-94552)
...
Co-authored-by: Mark Shannon <mark@hotpy.org>
2022-07-05 14:38:44 +02:00
Mark Shannon
b152bf448b
GH-94329: Don't raise on excessive stack consumption (GH-94421)
2022-06-30 15:27:14 +01:00
Mark Shannon
c0453a40fa
GH-94163: Add BINARY_SLICE and STORE_SLICE instructions. (GH-94168)
2022-06-27 12:24:23 +01:00
Christian Heimes
137fd3d88a
gh-90473: Decrease recursion limit and skip tests on WASI (GH-92803)
2022-05-19 12:43:16 +02:00
Mark Shannon
e48ac9c100
GH-90690: Remove `PRECALL` instruction (GH-92925)
2022-05-19 11:05:26 +01:00
Mark Shannon
944fffee89
GH-88116: Use a compact format to represent end line and column offsets. (GH-91666)
...
* Stores all location info in linetable to conform to PEP 626.
* Remove column table from code objects.
* Remove end-line table from code objects.
* Document new location table format
2022-04-21 16:10:37 +01:00
Brandt Bucher
2bde6827ea
bpo-46841: Quicken code in-place (GH-31888)
...
* Moves the bytecode to the end of the corresponding PyCodeObject, and quickens it in-place.
* Removes the almost-always-unused co_varnames, co_freevars, and co_cellvars member caches
* _PyOpcode_Deopt is a new mapping from all opcodes to their un-quickened forms.
* _PyOpcode_InlineCacheEntries is renamed to _PyOpcode_Caches
* _Py_IncrementCountAndMaybeQuicken is renamed to _PyCode_Warmup
* _Py_Quicken is renamed to _PyCode_Quicken
* _co_quickened is renamed to _co_code_adaptive (and is now a read-only memoryview).
* Do not emit unused nonzero opargs anymore in the compiler.
2022-03-21 11:11:17 +00:00
Nikita Sobolev
6c83c8e6b5
bpo-46198: rename duplicate tests and remove unused code (GH-30297)
2022-03-10 08:20:11 -08:00