Python 的实验性即时(JIT)编译器项目正面临终结。该功能于 2024 年随 Python 3.13 并入 CPython,但目前开发工作已实质性停滞。今年六月,Python 指导委员会宣布,在一份明确维护责任、兼容性及成功指标的标准轨道增强提案(PEP)获得批准前,暂停主分支中的 JIT 开发。

作为回应,JIT 维护者提交了 PEP 836(“JIT Go Brrr:CPython 支持 JIT 编译器的路径”)。经过数月讨论,作者团队最终选择撤回该提案。这意味着这一曾备受瞩目的功能开发大概率已画上句号。

合规争议与提案拉锯

JIT 功能由 Brandt Bucher 于 2024 年初引入 CPython。按照惯例,此类重大功能需经指导委员会批准标准轨道 PEP 后方可落地。尽管 Bucher 曾在核心开发者冲刺活动中宣布合并意图,但并未及时提交审批所需的 PEP,直至发布经理 Thomas Wouters 催促后才着手推进。

此前,Bucher 与 Savannah Ostrowski 起草了信息性 PEP 744,仅用于社区同步,不代表正式共识。直到今年六月,指导委员会正式要求提交标准轨道 PEP,以论证 JIT 作为非实验性功能的定位,包括维护承诺及对再分发者的影响。委员会设定了六个月期限,否则将从主分支移除 JIT 代码。

7 月 3 日,Bucher、Ostrowski 和 Ken Jin 发布 PEP 836 草案征求反馈,引发社区热烈讨论。争议焦点在于提案结构:部分核心开发者建议将目标与实现细节拆分,但作者团队坚持保留完整规划,认为缺乏计划支撑的目标毫无意义。此后讨论因缺乏实质性进展而放缓。

委员会质疑与最终撤回

9 月 21 日,指导委员会发布声明指出,PEP 836 虽回答了核心问题,但在支持计划、性能标准及安全性方面仍显模糊或过于乐观。委员会特别担忧内存影响、平台一致性以及启用 JIT 后对用户可见行为的影响,并强调安全审查应成为受支持状态的标准之一。

此外,委员会认为 PEP 836 设定的兼容性审查里程碑(对应预计 2028 年 8 月发布的 Python 3.17 候选版)过晚,要求即刻启动持续的兼容性审查进程。委员会还指出,JIT 的设计决策缺乏更广泛开发者群体的关键审查。

面对高门槛的审批要求,10 月 19 日,PEP 共同作者兼 Python 3.16/3.17 发布经理 Ostrowski 宣布撤回 PEP 836。她表示,团队目前精力不足以继续推进当前版本,但仍对 JIT 的技术方向保持乐观,并将公开参考实现供社区探索。

随着提案撤回,核心开发者 Brett Cannon 确认,JIT 相关工作将在主仓库停止。为确保 Python 3.16 开发周期的稳定性,JIT 代码很可能很快从 CPython 主分支中移除。至于未来是否由其他社区成员接手,目前尚不明确。