summaryrefslogtreecommitdiffstats
path: root/Python/compile.c
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* gh-100747: some compiler macros use c instead of C to access the compiler ↵Irit Katriel2023-01-041-7/+7
| | | | (#100748)
* GH-100719: Remove the `co_nplaincellvars` field from code objects. (GH-100721)Mark Shannon2023-01-041-1/+1
|
* GH-99554: Trim trailing whitespace (GH-100435)Brandt Bucher2022-12-221-1/+1
| | | Automerge-Triggered-By: GH:brandtbucher
* GH-99554: Pack location tables more effectively (GH-99556)Brandt Bucher2022-12-221-23/+44
|
* GH-100222: Redefine _Py_CODEUNIT as a union to clarify structure of code ↵Mark Shannon2022-12-141-5/+15
| | | | unit. (GH-100223)
* gh-99955: undef ERROR and SUCCESS before redefining (fixes sanitizer ↵Irit Katriel2022-12-131-0/+2
| | | | warning) (#100215)
* gh-99955: standardize return values of functions in compiler's code-gen ↵Irit Katriel2022-12-121-760/+694
| | | | (#100010)
* gh-99955: standardize return values of functions in assembler and optimizer. ↵Irit Katriel2022-12-021-42/+54
| | | | (#99956)
* GH-99877)Irit Katriel2022-11-301-23/+41
|
* gh-87092: move all localsplus preparation into separate function called from ↵Irit Katriel2022-11-301-30/+41
| | | | assembler stage (GH-99869)
* gh-99708: fix bug where compiler crashes on if expression with an empty body ↵Irit Katriel2022-11-241-3/+17
| | | | block (GH-99732)
* gh-99537: Use Py_SETREF() function in C code (#99657)Victor Stinner2022-11-221-3/+1
| | | | | | | | | | | | | | | 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.
* gh-99300: Replace Py_INCREF() with Py_NewRef() (#99530)Victor Stinner2022-11-161-4/+2
| | | | Replace Py_INCREF() and Py_XINCREF() using a cast with Py_NewRef() and Py_XNewRef().
* gh-87092: expose the compiler's codegen to python for unit tests (GH-99111)Irit Katriel2022-11-141-53/+120
|
* gh-98762: Fix locations of match sub-patterns (GH-98775)Irit Katriel2022-11-121-129/+116
|
* gh-99254: remove all unused consts from code objects (GH-99255)Irit Katriel2022-11-111-19/+92
|
* GH-96421: Insert shim frame on entry to interpreter (GH-96319)Mark Shannon2022-11-101-0/+2
| | | | | | * 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.
* gh-99300: Use Py_NewRef() in Python/ directory (#99317)Victor Stinner2022-11-101-50/+25
| | | | | | Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and Py_XNewRef() in C files of the Python/ directory. Update Parser/asdl_c.py to regenerate Python/Python-ast.c.
* GH-98686: Get rid of "adaptive" and "quick" instructions (GH-99182)Brandt Bucher2022-11-091-3/+0
|
* GH-96793: Implement PEP 479 in bytecode. (GH-99006)Mark Shannon2022-11-031-12/+50
| | | | | * Handle converting StopIteration to RuntimeError in bytecode. * Add custom instruction for converting StopIteration into RuntimeError.
* gh-87092: remove unused SET_LOC/UNSET_LOC macros (GH-98914)Irit Katriel2022-11-021-73/+6
|
* gh-87092: do not allocate PyFutureFeatures dynamically (GH-98913)Irit Katriel2022-11-021-12/+10
|
* gh-98811: use full source location to simplify __future__ imports error ↵Irit Katriel2022-10-311-30/+32
| | | | checking. This also fixes an incorrect error offset. (GH-98812)
* GH-96793: Change `FOR_ITER` to not pop the iterator on exhaustion. (GH-96801)Mark Shannon2022-10-271-2/+5
| | | | Change FOR_ITER to have the same stack effect regardless of whether it branches or not. Performance is unchanged as FOR_ITER (and specialized forms jump over the cleanup code).
* gh-98461: Fix location of RETURN_VALUE in async generator bytecode. ↵Irit Katriel2022-10-251-56/+43
| | | | compiler_jump_if no longer needs a pointer to the loc. (GH-98494)
* gh-97912: Avoid quadratic behavior when adding LOAD_FAST_CHECK (GH-97952)Dennis Sweeney2022-10-201-64/+135
| | | | | * The compiler analyzes the usage of the first 64 local variables all at once using bit masks. * Local variables beyond the first 64 are only partially analyzed, achieving linear time.
* gh-98461: Fix source location in comprehensions bytecode (GH-98464)Irit Katriel2022-10-201-60/+74
|
* gh-98398: Fix source locations for 'assert' bytecode (GH-98405)Irit Katriel2022-10-191-8/+10
|
* gh-98390: Fix source locations of boolean sub-expressions (GH-98396)Irit Katriel2022-10-181-1/+1
|
* gh-93691: Compiler's code-gen passes location around instead of holding it ↵Irit Katriel2022-10-171-848/+975
| | | | on the global compiler state (GH-98001)
* gh-87092: bring compiler code closer to a preprocessing-opt-assembler ↵Irit Katriel2022-10-051-39/+49
| | | | organisation (GH-97644)
* GH-95921: Fix positions for some chained comparisons (GH-96968)Brandt Bucher2022-09-201-0/+1
|
* gh-87092: in compiler, move the detection of exception handlers before the ↵Irit Katriel2022-09-201-16/+32
| | | | CFG optimization stage (GH-96935)
* gh-87092: reduce redundancy and repetition in compiler's optimization stage ↵Irit Katriel2022-09-131-90/+63
| | | | (GH-96713)
* gh-88057: in compile.c, assertion that stackdepth is alway >=0 is missing in ↵Irit Katriel2022-09-071-0/+1
| | | | one place (GH-96513)
* gh-93554: Conditional jump opcodes only jump forward (GH-96318)Irit Katriel2022-09-011-72/+82
|
* gh-93678: apply remove_redundant_jumps in optimize_cfg (GH-96274)Irit Katriel2022-09-011-11/+33
|
* gh-87092: use basicblock_last_instr consistently in the compiler (GH-96243)Irit Katriel2022-08-241-29/+32
|
* gh-93678: add _testinternalcapi.optimize_cfg() and test utils for compiler ↵Irit Katriel2022-08-241-48/+210
| | | | optimization unit tests (GH-96007)
* GH-90997: Wrap yield from/await in a virtual try/except StopIteration (GH-96010)Brandt Bucher2022-08-191-6/+13
|