我的AI用Rust構建的PHP引擎透過了17%的PHP原始碼測試併成功渲染WordPress頁面
一位不懂Rust的作者藉助AI從頭開始用Rust編寫了一個PHP直譯器Phargo,目前透過了PHP官方測試套件17.4%的測試,並能渲染WordPress頁面。該專案依賴22,000個測試作為客觀評估,避免了AI自我評估的偏差。
作者自稱完全不懂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。