Rust で構築した自前製 AI PHP エンジンが PHP ソースコードのテストの 17%をパスし、WordPress を動作させることに成功しました

2026/07/05 6:35

Rust で構築した自前製 AI PHP エンジンが PHP ソースコードのテストの 17%をパスし、WordPress を動作させることに成功しました

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Phargo は、AI が既存の Rust の経験もなく、PHP のソースコードも持たずから Scratch で複雑な PHP インタプリタを Rust で構築した画期的なプロジェクトです。「Radical Honesty(徹底的な正直さ)」に則り、開発者は AI による自己評価ではなく、22,000 個を超えるファイルを含む PHP の大規模テストスイートを外部のオラクルとして活用しています。現時点で約 17.4% のテストが合格しており(3,844/22,037)、GD や MySQL ドライバーなどの C エクスパンションを考慮すれば、その現実的な上限は概ね 40–45% と予測されています。初期段階での重大な問題として、行末の不一致(CRLF vs LF)や多数の「ポテムキン」機能(解析は可能だが実装上で機能しないもの)が特定され、反復的なテストを通じて修正されています。具体例としては、

clone
が NULL を返し、
DateTimeImmutable
に数学的エラーがあり、オートローディングが破損しているなどが挙げられます。リソース枯渇を防ぐための安全装置として、6 GiB というグローバルアロケーターの上限、無限ループを防止するためのステップ制限、出力長上限などが実装されています。特定のブロック(HTML パーサー内の
goto
使用や
preg_split
のフラグ処理など)を修正した後、Phargo は WordPress との機能的な統合を達成しました。現状では全ページの WordPress パフォーマンスは標準的な PHP の約 55 倍遅くなっていますが(7.1 秒対 126 ミリ秒)、ベースとなるバイトコード仮想マシンのマイクロベンチマークではすでに PHP 8.5 より 1–3 倍高速化が見られ、将来的には全ページのパフォーマンス向上を目標としており、その実現に向けて努力が続けられています。Phargo は、厳格な外部検証によって導かれることで AI が新しい言語で堅牢なシステムを生み出すことを示しており、「連続的なテストが機能の幻覚を防ぐ」という開発のパラダイムを検証する可能性を示唆しています。

本文

Phargo: Rust からのゼロスクラッチで実装された PHP インタプリタの実験

数日前、容量わずか 26 KB の WordPress フロントページをターミナルで確認した。「Hello world!"とSQLite データベースから読み込まれ、綺麗に閉じられた HTML。その生成元である PHP エンジンのソースコードには、PHP 処理系のロジックがゼロ行も含まれていない。これは完全に Scratch から書き上げられた Rust で実装されたインタプリタ「Phargo」によるものだ。

著者は Rust を知らず、 Lexer も未経験だが、「木を渡る評価機」というコンセプトを追い、AI が書いたコードを監査する役割(狙う)を果たしている。本記事は、その開発プロセスと「Radical Honesty(徹底した正直さ)」という理念について綴られた実験レポートである。

1. Radical Honesty: 不可逆なテストスイートとの戦い

現代では AI でプロジェクトを作ることは容易だが、「動く」と言っても誰にとっての動作か不明確になりがちだ。このプロジェクトが採用したのは、**Bun チームから学び取った「AI に自分で点数を付けさせない」**というアプローチである。

PHP には 30 年にわたって作成された約 22,000 の

.phpt
ファイルで構成される標準テストスイートが存在する。これらは AI や著者ではなく、言語の「呪われた角々」をコード化している。**オラクル(神託)**と呼ばれるこのスイートを、すべてパスすることが目標である。

スコア状況

  • 現在のスコア: 22,037 件中 3,844 件がパス(約 17.4%)。
  • 実質的な上限:40〜45%。GD や C エクステンション等のテストは含まれていない。
  • トレンド: ゼロからのスタートでありながら、上昇トレンドを確認中。

著者の作業ループ

AI との協業フローは以下の通り極めてシンプルだ:

  1. AI が全コーパスで失敗ヒストグラムを実行し、修正可能な最大のクラスタを発見する。
  2. 機能を実装する。
  3. テスト数約 22,000 を含むスコアボードを走査(ファン音が鳴るほど長時間かかる)。
  4. 数字が増えたら: コミットしてプッシュし、繰り返す。
  5. 数字が減ったら: 「後退したね、再確認」で工程に戻る。

2. オラクルには賄賂は効かない:ハルネスの罠

当初、パス率が不自然に停滞していた時期がある。これは単純なロジックエラーではなく、**「目に見えない改行コードの違い」**によるものだった。

CRLF との対戦

  • 原因: テストコーパスが Windows 由来のため
    CRLF
    (改行コード付き)で記録されているが、スコアボードはバイト単位の厳密な比較を行い、標準ランナーの正規化処理を無視していた。
  • 結果: 文字列の違いだけでマルチラインテストが無言で失敗し続けた。
  • 解決策: 一行のコードで出力を正規化(
    \r\n
    \n
    に置き換えるなど)するロジックを追加した。これにより数百件のテストが瞬時にグリーンに変化した。

教訓

「自分の測定方法を再確認せよ」 オラクルは誠実だが、それを支えるインフラ(ハルネス)に嘘が含まれていれば意味がない。「エンジンが間違っているのか、それともスコアボードが嘘をついているか?」という問いを常時抱えている。

3. テストスイート:地雷原と安全装置

他者が作成した 22,000 ファイルの中には、**「地雷」**と呼ばれるテストも含まれる。悪意があるのではなく、古くからのメモリバグや異常な構造を持つコードが含まれていることが多い。

代表的なリスク

  • メモリーバグ: テストの実行により全ての RAM を消費し、システム全体がフリーズ・再起動してしまうケース。
  • 無限ループ: 時間を消費し続けるジェネレータテストなど。

安全のために導入された制限

これらのリスクに対処するため、エンジンに以下のような**硬制約(Hard Constraints)**が設けられている:

// 例示的な制限ロジック
const MAX_MEMORY_GB: usize = 6; // グローバルアロケーター上限 (6 GiB)
const STEP_LIMIT: u32 = 1000;   // ステップ数制限 (無限ループ防止)
const STRING_MAX_LEN: usize = 10_000; // 文字列長上限

ビスクファイル(Breadcrumb)の重要性

テストがハングアップした場合、どのファイルが原因か即座に特定できるよう、現在のテスト名を更新する

ビスクファイル
を維持している。これにより、開発マシンが再起動しても復旧が容易になる。

これらの制限こそが、「研究プロジェクト」から「安全に 22,000 ファイルを消化する実験」へと分ける決定的な線引きだ。

4. Quietly Lying: 静かに嘘をついている機能たち

テストスイートが発見した最も興味深いバグ群は、「存在し、パースされ、エラーなく実行されるが、何もしない機能」(ポチョムキンの

_builtin_
)である。

発見された具体的バグ

機能名異常な挙動
clone
DateTimeImmutable
を clone すると永久的に沈黙・破損する(不変の時刻計算が clone に依存しているため)
unset($arr[$key])
キーが存在せず、何もしない No-op な状態でも、キーがそのまま残ってしまう
trim($str, $charlist)
第 2 引数
$charlist
を完全に無視し、空白文字のみをトリムする
可変変数実際に宣言されたのに存在しない挙動を示す
static function variables
静的な関数変数が認識されない
spl_autoloader_register()
オートローダーへの登録は行われるが、実際には呼び出されない
catch (\Throwable)
例外をキャッチするが、実際には何もマッチさせない

テストの役割

これらのバグは人間によるコードレビューでは見過ごされがちだが、22,000 のテストという網羅的な監査により発見された。

テーシス: コードを完全に監査することは不可能であるため、テストが代わりに厳密な監査を行うのが究極の信頼性確保策だ。

5. そしてついに WordPress ページが出力された

「永遠の北極星」とも呼ばれる WordPress は、2003 年以来の PHP イディオムの堆積層を含み、互換性の最終ボスである。

開発の困難さ

  • wp-load.php
    の起動一つでも、以下の複雑な要素が絡む:
    • goto
      キーワードの使用(HTML パーサー内で)。
    • str_replace
      の参照パラメータ
      $count
      の扱い。
    • 正規表現エスケープ
      \xNN
      の処理。
    • function_exists()
      による半分のビルトインの消失。
  • 深刻なバグ:
    preg_split
    wpdb::prepare
    内の
    PREG_SPLIT_DELIM_CAPTURE
    フラグを無視していたことは、4 階下の深層構造に隠れた致命傷だった。

ついに達成

ある日の夕方、以下の完了を確認した:

  • 新規インストール実行: ユーザー作成、オプションテーブル充填、3 件の投稿 SQLite 格納完了。
  • フロントエンドレンダリング: テーマ、投稿、パーマリンク正常表示。
  • /wp-admin/
    の動作:
    ダッシュボードも問題なく動作(これほど完璧な状態で驚いた)。

パフォーマンスと現状

  • ⚠️ 速度差: 現時点では標準 PHP より約 55 倍遅い(7.1 秒 vs 126 ミリ秒)。
    • ただし、光り輝く新しいバイトコード VM は、PHP 8.5 の 1〜3 倍のパフォーマンスを一部で発揮しており、この差は縮小に向かっている。
  • ⚠️ 未解決: REST API などの領域はまだ探査中。

6. これは実際には何についてか?

著者は「AI が言語エンジンを書けるか」を知ろうと始めたが、答えはシンプルだ:

「コードを検証できない人がどうすればプロジェクトを誠実に保つか」

その答えは古風で退屈だが美しい:他人が書いたテストと、現実が変わる时才れ動く数字、そして公然無視できない成果

現在のステータス

  • コード行数:24,000 ライン
  • 開発ログ: 戦いの物語が収集され、スコアボードは数十件ずつ上昇中。
  • 未来: ブラウザ上で Rust エンジン(WASM)で動作する WordPress のバージョンが遠くにあるかもしれない。

GitHub リポジトリ

詳細な進捗を確認できます:

https://github.com/ekinertac/Phargo

このプロジェクト自体も、LLM で下書きされ、著者が編集したものだ。「マシンは書く、私は狙う」。それが全てではないか。

同じ日のほかのニュース

一覧に戻る →

2026/07/05 8:41

鼻スプレーで脳の老化を逆転させることに成功した科学者たち

## Japanese Translation: テックス大学医学部ナーシュ K.ヴァシスト医学部の画期的な研究、アショーク・シェッティ医師をリーダーとし、再生医療研究所の下でマドフ・リラヴァーティ・ナラーヤナ氏とマハエダール・コダーリ氏といったシニア研究者が含まれたこの研究は、単純な 2 回投与の鼻スプレーが神経炎症性を逆転させ、脳機能を回復させることを示している。同研究は「細胞外小胞ジャーナル」(15(2): e70232, 2026)に発表され、数週間で炎症低減を示し、効果は数ヶ月持続することが確認された。治療法では、血脳関門を手術なしで回避しながらマイクロ RNA を直接脳組織へ届ける細胞外小胞(EVs)を使用している。細胞レベルにおいて、この治療は神経細胞のミトコンドリアを「充電」し、酸化ストレスを軽減すると同時に、NLRP3 インフラマソームおよび cGAS-STING シグナル経路といった炎症経路を抑制した。行動学試験では、対照群と比較して親しみのある物体を認識する能力や新たな環境を検出する能力に顕著な改善が確認された。シェッティ医師は、その成果が性別間で一貫性があり類似しており、このアプローチを「普遍的」と表現した。国立老人研究所(NIA)による支援を受けながら、特許出願が提出され、これは侵襲的な処置や月単位の薬物療法に代わる最小限の投与 regimes に向けた画期的な進歩を示している。2020 年の約 51 万4000 件から 2060 年には約 100 万件へと倍増するとの予測を踏まえれば、新たな認知症患者数の増加が待つのであり、このタイミングでの進展は意義深いが、世界規模で増大しつつある認知障害の負担を軽減しながら、従来の介入に伴うリスクを最小限に抑えるための変革的な一歩を提供している。

2026/07/05 4:41

Fable を用いた Command & Conquer: Generals の macOS、iPhone、iPad 向けネイティブ移植

## Japanese Translation: Zero Hour は、Apple Silicon Mac、iPhone および iPad 向けに公式ネイティブアプリケーションとして利用可能となり、DirectX 8 エンジンを Metal に変換する堅牢な翻訳パイプラインを採用しており、エミュレーションを必要とせずに動作します。このポータブルは fbraz3 が作成した GeneralsX プロジェクトを基盤とし、タップ選択、ドラッグボックス選択、ピンチによる拡大縮小など、基本的なタッチ操作を統合しています。macOS へのインストールには、外部的アセット(約 2.7 GB のバンドル)を抽出するために Steam コピーの所有が必要ですが、iOS バージョンはこれらのアセットがアプリケーションバンドル内に含められており、独立した体験を実現しています。開発プロセスには、Ammaar Reshi の指揮のもとで Claude Code が大幅な工数を投入し、MoltenVK や GPL v3 ライセンス付きコードなどのオープンソースツールを活用して、レガシーの PC アーキテクチャと最新の ARM64 ハードウェアを接続しました。Xcode 設定や特定のビルドスクリプトなどインストール前提条件が関わりますが、ユーザーはモバイルデバイス上で高性能の実時間戦略ゲームプレイを楽しむことができます。ただし、iOS ユーザーは長時間セッション中の潜在的なメモリ制限や、稀なバックグラウンド化時クラッシュについて留意する必要があります。

2026/07/05 6:51

GPT-5.5 Codex の推論トークンクラスタリングが性能低下を引き起こしている可能性があります

## Japanese Translation: 分析の結果、Codex ファミリーにおいて GPT-5.5 に特有の重大な異常が判明した。2026 年 2 月と 6 月 27 日の間、865 セッションから抽出された 390,195 トークン記録を検査したところ、GPT-5.5 の応答は過剰に正確な 516 トークンで終了する傾向があり、さらに 1034 トークンおよび 1552 トークンを周辺にクラスタリングしていた。GPT-5.5 は全応答の 19.3% に過ぎないにもかかわらず、正確な 516 トークンでのイベントの 82% を引き起こしており、非 GPT-5.5 モデルで観察されたレートと比較して約 33.6 倍高い。他のバージョン(GPT-5.4、GPT-5.2、および一部の GPT-5.3 バリエーション)では、これらの固定境界でのクラスタリングは著しく小さい。このパターンは分析深度の大幅な低下と相関しており、平均的な推論トークン強度は 2 月には 268.1 から 5 月には 107 トークン未満まで減少し、P90 も 772 から 344 トークンへと低下した。この異常は、GPT-5.5 の実行が正確な 516 トークンで終了する場合に複雑なコーディングタスクに対して誤った回答を返す過去の問題と関連している。固定トークン数でのクラスタリングは自然な変動ではなく閾値境界に似ており、推論予算のカップ、アクティブルーティングによる截断、スケジューラーの制限、または GPT-5.5 に特有のその他の内部閾値がある可能性を示唆している。この行動はEarlier モデルとの比較で severe な能力低下を示しており、高リスクなプログラミングシナリオにおける GPT-5.5 ファミリーの有用性を制限する可能性がある。専門家からは、これが劣化したサービス階級なのか、特定の内部ロジックなのか、またはその他の原因なのかを明らかにするために即時の調査を要請し、モデルと値ごとにトークンカウントイベントを照会して正確な値の数を比較したり、異なる GPT バージョンで複雑なタスクを再現するたり、正確な 516 トークンの応答とより長い推論出力を分離して行う品質評価を実施するなど、検証手順が提案されている。

Rust で構築した自前製 AI PHP エンジンが PHP ソースコードのテストの 17%をパスし、WordPress を動作させることに成功しました | そっか~ニュース