python / python/cpython

Move const folding to the peephole optimizer

未关闭
#126,835 123 条评论 6 个 reaction 已指派 2 人 在 GitHub 查看

@tomasr8 已经在做这个了。

开始于 2024年12月21日。

interpreter-core type-feature
主要语言
Python
星标
77.2k
派生
35.9k
PR 合并指标
PR 指标待抓取

描述

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

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。