AI News HubLIVE
站内改写1 分钟阅读

我的AI用Rust构建的PHP引擎通过了17%的PHP源码测试并成功渲染WordPress页面

一位不懂Rust的作者借助AI从头开始用Rust编写了一个PHP解释器Phargo,目前通过了PHP官方测试套件17.4%的测试,并能渲染WordPress页面。该项目依赖22,000个测试作为客观评估,避免了AI自我评估的偏差。

来源Hacker News AI作者: ekinertac

作者自称完全不懂Rust,也没有编写过词法分析器,却利用AI构建了一个全新的PHP解释器Phargo。该项目完全用Rust编写,不包含任何PHP的原始源码。目前,Phargo已经通过了PHP官方测试套件22,037个测试中的3,844个,通过率17.4%。考虑到测试套件中部分测试涉及C扩展(如GD、cURL、SOAP等),实际可行上限约为40-45%。

Phargo的独特之处在于其开发流程:AI根据失败直方图找出最大的失败集群并实现修复,然后运行整个测试套件(约7分钟),如果通过率上升则提交代码,下降则回滚。作者将测试套件视为不可贿赂的Oracle,确保评估的公正性。

在开发过程中,项目曾因行尾符(CRLF vs LF)导致数百个测试虚假失败,修复后通过率大幅提升。此外,测试套件中还发现了一些隐藏的bug:clone操作返回NULL、unset无效、trim忽略字符列表、可变变量和静态变量不存在,以及catch(\Throwable)无法捕获异常等。这些bug在演示或人工审查中难以发现,但测试套件无情地暴露了它们。

最终,Phargo成功运行了WordPress安装程序,渲染了前端页面和管理面板。然而,性能方面Phargo比原生PHP慢约55倍(7.1秒 vs 126毫秒)。不过,作者声称新的字节码虚拟机已经使微基准测试达到PHP 8.5的1-3倍性能,正在努力优化。

该项目验证了一个核心观点:即使不懂代码的人,也可以通过大量外部测试来保证项目的正确性。作者强调,22,000个测试比任何人工审查都更严格。目前Phargo仍在持续开发中,目标是通过WASM在浏览器中运行WordPress。代码已开源在github.com/ekinertac/Phargo。