summaryrefslogtreecommitdiffstats
path: root/Python/compile.c
Commit message (Collapse)AuthorAgeFilesLines
* gh-104656: Rename typeparams AST node to type_params (#104657)Jelle Zijlstra2023-05-221-36/+36
|
* gh-104686: Fix tracing for decorated classes (#104708)Jelle Zijlstra2023-05-211-0/+4
|
* gh-104619: never leak comprehension locals to outer locals() (#104637)Carl Meyer2023-05-191-21/+19
|
* gh-104602: ensure all cellvars are known up front (#104603)Carl Meyer2023-05-191-1/+1
| | | Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
* gh-104615: don't make unsafe swaps in apply_static_swaps (#104620)Carl Meyer2023-05-181-2/+2
|
* gh-104374: Remove access to class scopes for inlined comprehensions (#104528)Jelle Zijlstra2023-05-181-5/+15
| | | Co-authored-by: Carl Meyer <carl@oddbird.net>
* gh-103865: add monitoring support to LOAD_SUPER_ATTR (#103866)Carl Meyer2023-05-161-0/+4
|
* gh-103763: Implement PEP 695 (#103764)Jelle Zijlstra2023-05-161-103/+520
| | | | | | | | | | | | | | This implements PEP 695, Type Parameter Syntax. It adds support for: - Generic functions (def func[T](): ...) - Generic classes (class X[T](): ...) - Type aliases (type X = ...) - New scoping when the new syntax is used within a class body - Compiler and interpreter changes to support the new syntax and scoping rules Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Co-authored-by: Eric Traut <eric@traut.com> Co-authored-by: Larry Hastings <larry@hastings.org> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-104482: Fix error handling bugs in ast.c (#104483)Irit Katriel2023-05-151-0/+1
|
* gh-104377: fix cell in comprehension that is free in outer scope (#104394)Carl Meyer2023-05-111-3/+12
|
* gh-97933: (PEP 709) inline list/dict/set comprehensions (#101441)Carl Meyer2023-05-091-75/+288
| | | | Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-104240: return code unit metadata from codegen (#104300)Irit Katriel2023-05-091-3/+47
|
* gh-104240: make _PyCompile_CodeGen support different compilation modes (#104241)Irit Katriel2023-05-071-2/+6
|
* gh-87092: Expose assembler to unit tests (#103988)Irit Katriel2023-05-011-33/+88
|
* gh-87092: change assembler to use instruction sequence instead of CFG (#103933)Irit Katriel2023-04-291-13/+27
|
* gh-87729: add LOAD_SUPER_ATTR instruction for faster super() (#103497)Carl Meyer2023-04-241-3/+125
| | | | | This speeds up `super()` (by around 85%, for a simple one-level `super().meth()` microbenchmark) by avoiding allocation of a new single-use `super()` object on each use.
* gh-103492: Clarify SyntaxWarning with literal comparison (#103493)Shantanu2023-04-241-4/+12
|
* gh-101517: fix line number propagation in code generated for except* (#103550)Irit Katriel2023-04-241-12/+20
|
* gh-87092: fix a few cases of incorrect error handling in compiler (#103456)Irit Katriel2023-04-241-9/+23
| | | gh-87092: fix a few cases of incorrect error handling
* GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython ↵Mark Shannon2023-04-121-2/+1
| | | | | | | | | | (GH-103083) * The majority of the monitoring code is in instrumentation.c * The new instrumentation bytecodes are in bytecodes.c * legacy_tracing.c adapts the new API to the old sys.setrace and sys.setprofile APIs
* gh-87092: fix refleak in peepholer test harness (#103448)Irit Katriel2023-04-111-4/+0
|
* gh-87092: move assembler related code from compile.c to assemble.c (#103277)Irit Katriel2023-04-111-713/+160
|
* gh-87092: move CFG related code from compile.c to flowgraph.c (#103021)Irit Katriel2023-03-311-2391/+76
|
* GH-100982: Break up COMPARE_AND_BRANCH (GH-102801)Brandt Bucher2023-03-231-1/+10
|
* gh-102859: Remove JUMP_IF_FALSE_OR_POP and JUMP_IF_TRUE_OR_POP (#102870)Irit Katriel2023-03-221-115/+77
|
* gh-102860: improve performance of compiler's instr_sequence_to_cfg (#102861)Irit Katriel2023-03-211-6/+44
|
* gh-87092: refactor assemble() to a number of separate functions, which do ↵Irit Katriel2023-03-131-244/+290
| | | | not need the compiler struct (#102562)
* gh-87092: compiler's CFG construction moved to after codegen stage (#102320)Irit Katriel2023-03-071-184/+336
|
* gh-102371: move _Py_Mangle from compile.c to symtable.c (#102372)Irit Katriel2023-03-021-68/+2
|
* gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives ↵Irit Katriel2023-02-281-3/+2
| | | | (in Python/) (#102193)
* gh-87092: Make jump target label equal to the offset of the target in the ↵Irit Katriel2023-02-281-51/+64
| | | | instructions sequence (#102093)
* gh-101907: Stop using `_Py_OPCODE` and `_Py_OPARG` macros (GH-101912)Steve Dower2023-02-201-10/+10
| | | | | | * gh-101907: Removes use of non-standard C++ extension from Include/cpython/code.h * Make cases_generator correct on Windows
* gh-101928: fix crash in compiler on multi-line lambda in function call (#101933)penguin_wwy2023-02-161-2/+2
|
* gh-101799: implement PREP_RERAISE_STAR as an intrinsic function (#101800)Irit Katriel2023-02-141-2/+2
|
* GH-87849: Simplify stack effect of SEND and specialize it for generators and ↵Mark Shannon2023-02-131-0/+2
| | | | coroutines. (GH-101788)
* gh-98831: Use opcode metadata for stack_effect() (#101704)Guido van Rossum2023-02-091-220/+38
| | | | | | | | | | * Write output and metadata in a single run This halves the time to run the cases generator (most of the time goes into parsing the input). * Declare or define opcode metadata based on NEED_OPCODE_TABLES * Use generated metadata for stack_effect() * compile.o depends on opcode_metadata.h * Return -1 from _PyOpcode_num_popped/pushed for unknown opcode
* gh-101632: Add the new RETURN_CONST opcode (#101633)penguin_wwy2023-02-071-7/+10
|
* gh-98831: rewrite PUSH_EXC_INFO and conditional jumps in the instruction ↵Irit Katriel2023-02-011-11/+13
| | | | definition DSL (#101481)
* gh-99955: use SUCCESS/ERROR return values in optimizer and assembler. Use ↵Irit Katriel2023-01-311-189/+142
| | | | RETURN_IF_ERROR where appropriate. Fix a couple of bugs. (#101412)
* gh-101400: Fix incorrect lineno in exception message on continue/break which ↵Dong-hee Na2023-01-301-2/+4
| | | | are not in a loop (#101413)
* gh-98831: add variable stack effect support to cases generator (#101309)Irit Katriel2023-01-251-5/+7
|
* GH-100762: Don't call `gen.throw()` in `gen.close()`, unless necessary. ↵Mark Shannon2023-01-241-3/+3
| | | | | | (GH-101013) * Store exception stack depth in YIELD_VALUE's oparg and use it avoid expensive gen.throw() in gen.close() where possible.
* Fix typo in comment in compile.c (#101194)Ikko Eltociear Ashimine2023-01-201-1/+1
|
* gh-101169: reduce the implementation of except* by one bytecode instruction ↵Irit Katriel2023-01-191-16/+11
| | | | (#101170)
* GH-100982: Add `COMPARE_AND_BRANCH` instruction (GH-100983)Mark Shannon2023-01-161-0/+3
|
* GH-100923: Embed jump mask in `COMPARE_OP` oparg (GH-100924)Mark Shannon2023-01-111-1/+3
|
* gh-88696: clean up dead argument to compiler_make_closure (GH-100806)Carl Meyer2023-01-071-23/+7
|
* GH-99005: More intrinsics (GH-100774)Mark Shannon2023-01-061-10/+9
| | | * Remove UNARY_POSITIVE, LIST_TO_TUPLE and ASYNC_GEN_WRAP, replacing them with intrinsics.
* GH-98831: Update generate_cases.py: register inst, opcode_metadata.h (#100735)Guido van Rossum2023-01-051-0/+28
| | | | | | | | (These aren't used yet, but may be coming soon, and it's easier to keep this tool the same between branches.) Added a sanity check for all this to compile.c. Co-authored-by: Irit Katriel <iritkatriel@yahoo.com>
* GH-99005: Add `CALL_INTRINSIC_1` instruction (GH-100771)Mark Shannon2023-01-051-12/+8
| | | | | | | | * Remove PRINT_EXPR instruction * Remove STOPITERATION_ERROR instruction * Remove IMPORT_STAR instruction