Python JIT开发遭官方紧急叫停:六个月内重新补PEP,否则将彻底移除主干代码
指导委员会一纸令下:JIT开发全面暂缓
Python指导委员会近日发布了一项出人意料的指令,要求立即暂停对JIT(即时代码)编译器项目在Python主分支上的所有新开发工作。这一决定在开源社区引起轩然大波,尤其因为该JIT编译器此前已被合并进CPython的主干代码库。委员会的声明暗示,这一合并本身可能操之过急——依据是关联的PEP 744仅属于信息性文档,且其中包含大量未解决的开放性问题。
信息性PEP 744为何引发主干危机
争议的根源在于PEP 744的性质。该PEP原本被归类为“信息性”(Informational),用于记录和讨论JIT设计的初步构想,而非作为正式的标准提案。然而,JIT团队在未完成最终标准流程的情况下,就将实验性代码推入了主分支。指导委员会认为,这种做法绕过了Python社区通常的PEP审查和共识建立机制,使主干代码承载了处于“未定型”状态的关键功能,风险过高。有81%的团队明知有漏洞还发代码的行业习惯,在这一决策中被视为致命隐患。
六个月的倒计时:一场与时间赛跑的PEP博弈
委员会给出了明确的最后期限:六个月。在这段时间内,JIT团队必须完成一份新的、更完整的PEP,并使其获得社区接受。如果未能按时完成,现有的JIT代码将被从主分支中彻底移除。关键贡献者Mark Shannon直言:“停止所有开发直到PEP被接受,把我们置于一个尴尬的境地。”压力在于,要快速产出新的PEP就不得不压缩讨论时间,而社区真正需要的公开辩论却可能因此被牺牲。六个月对于创建一个成熟PEP并达成共识而言,并不宽裕。
核心开发者警告:移除代码等于前功尽弃
Shannon进一步指出,如果最终不得不将JIT代码移出主干分支,项目极有可能失去发展势头。历史上,此类被“打回原形”的实验性功能往往因难以重新获得资源和贡献者关注而夭折。目前CPython的JIT实现与PyPy或GraalPy等独立项目完全不同,它直接内嵌于官方解释器,承载着CPython性能跃升的希望。社区也出现了支持声音,认为现在正是提出替代方案的好时机,但时间窗口非常短暂。
社区热议:是否该有更好的JIT路径?
在Hacker News等论坛上,开发者们展开了激烈讨论。有人赞赏指导委员会对流程严谨性的坚持——即使面对性能提升的诱惑也不应放弃RFC流程;也有人批评委员会突然“踩刹车”的方式过于生硬,认为应该在合并前就明确PEP的正式状态。目前,JIT团队已暂停提交新代码,转向集中精力撰写PEP。无论结果如何,这一事件都为Python核心开发树立了一个警示:实验性新功能在进入主干前,必须先完成“标准作业程序”。