Move const folding to the peephole optimizer
Offen
@tomasr8 arbeitet bereits daran.
Seit 21.12.2024.
interpreter-core
type-feature
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Feature or enhancement
Proposal:
For additional context see https://github.com/python/cpython/pull/126830#issuecomment-2476525196.
Flow graph optimizer has more information and can do better job.
The problem is that we need to convert from UNARY_OP(-, CONST(1)) to CONST(-1), still before the code generation phase, because this leads to a few problems, one of which is shown below.
x = 1
match x:
case -0:
y = 0
eclips4@nixos ~/p/p/cpython (remove-ast-optimizer)> ./python example.py
File "/home/eclips4/programming/programming-languages/cpython/example.py", line 4
case -0:
^^
SyntaxError: patterns may only match literals and attribute lookups
cc @markshannon
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
- gh-128802
- gh-129426
- gh-129550
- gh-129568
- gh-129634
- gh-129703
- gh-129963
- gh-130016
- gh-130032
- gh-130109
- gh-130769
- gh-131054
- gh-131826
- gh-131830
- gh-146631
- gh-147187
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Bewertung
Dieses Issue wurde noch nicht bewertet.