私のAIがRustで構築したPHPエンジンがPHP-srcテストの17%を通過し、WordPressをレンダリング
Rustを知らない開発者がAIを使ってゼロからRustでPHPインタプリタを構築し、PHP公式テストスイートの17.4%を通過、WordPressページのレンダリングに成功した。このプロジェクトは22,000のテストを客観的なオラクルとして活用し、AIの自己評価バイアスを排除している。
著者はRustの知識がなく、字句解析器を書いたこともないと公言しながら、AIを利用して新しいPHPインタプリタPhargoをゼロからRustで構築しました。このプロジェクトにはPHPの元のソースコードは一切含まれていません。現在、PhargoはPHP公式テストスイート22,037件中3,844件(17.4%)を通過しています。テストスイートにはGD、cURL、SOAPなどのC拡張のテストも含まれているため、現実的な上限は約40~45%と見積もられています。
Phargoの開発プロセスはユニークです。AIは失敗ヒストグラムから修正可能な最大の失敗クラスターを見つけ、実装、テストスイート全体(約7分)を実行します。合格率が上昇すればコミット、低下すればロールバックします。著者はテストスイートを「賄賂の効かないオラクル」と称し、評価の公正さを保証しています。
開発中、改行コード(CRLF vs LF)の問題で何百ものテストが偽の失敗を引き起こし、修正後に合格率が大幅に向上しました。さらに、テストスイートはcloneがNULLを返す、unsetが無効、trimが文字リストを無視する、可変変数や静的変数が存在しない、catch(\Throwable)が例外をキャッチしないなど、隠れたバグを明らかにしました。これらのバグはデモやコードレビューでは見逃される可能性が高いですが、テストスイートは容赦なく露呈させました。
最終的にPhargoはWordPressのインストールを完了し、フロントページと管理パネルのレンダリングに成功しました。しかし、パフォーマンス面ではネイティブPHPより約55倍遅い(7.1秒対126ミリ秒)です。著者は新しいバイトコードVMによりマイクロベンチマークでPHP 8.5の1〜3倍の性能を達成しており、さらなる最適化を進めています。
このプロジェクトは、コードを理解できない人間でも、大量の外部テストを活用することでプロジェクトの正確性を保証できることを実証しています。著者は22,000のテストが人間のレビュアーよりもはるかに厳格だと強調しています。現在もPhargoは継続的に開発されており、将来的にはWordPressをブラウザ上でWASMとして動作させることが目標です。コードはgithub.com/ekinertac/Phargoで公開されています。