Claude’s C Compiler は、長時間にわたる自律的な開発の実験として、並列に動作する Claude エージェントのチームが Rust で書いた C コンパイラであり、並列に動く Claude のチームで C コンパイラを構築する で紹介されている。仕様としては、依存関係を持たずゼロから書かれる最適化コンパイラであり、GCC と互換性を持ち、Linux カーネルをコンパイルでき、複数のバックエンドをサポートするよう設計されたものとされた。人間の著者は、複数の最適化パスを可能にするための SSA 中間表現といった一部の設計上のポイントは指定したが、それをどう実装するかは指定しなかった。
このコンパイラは Claude Opus 4.6 によって、2 週間にわたる 2,000 回近くの Claude Code セッションを通じて構築され、総コストは 2 万ドルをわずかに下回った。実装はクリーンルームで行われたとされており(開発中のどの時点でも Claude はインターネットにアクセスできなかった)、依存しているのは Rust の標準ライブラリだけである。ソースコードは公開されている。
機能
コンパイラの規模は約 10 万行で、x86、ARM、RISC-V 上で起動可能な Linux 6.9 をビルドできる。また QEMU、FFmpeg、SQLite、PostgreSQL、Redis をコンパイルでき、GCC torture test suite を含むほとんどのコンパイラテストスイートで 99% の合格率を示し、Doom をコンパイルして実行することもできる。
発表では、いくつかの制約が挙げられている。
- Linux をリアルモードから起動するのに必要な 16 ビット x86 コンパイラを持たず、その段階では GCC を呼び出している。x86_32 と x86_64 のコンパイラは独自のものであり、ARM と RISC-V では完全に単独でコンパイルする。このコンパイラは正しい 16 ビット x86 コードを出力することはできるが、その結果は 60kb を超え、Linux が課す 32k のコードサイズ上限を大きく上回ってしまう。
- 独自のアセンブラやリンカを持たない。これらは Claude が最後に自動化に着手した部分で、いまだにいくらかバグが多いとされており、デモ動画では GCC のアセンブラとリンカが使われた。
- 多くのプロジェクトをビルドできるが、すべてではなく、まだ本物のコンパイラのドロップイン置き換えにはなっていない。
- すべての最適化を有効にしても、生成されるコードは、すべての最適化を無効にした GCC のコードよりも効率が低い。
- Rust コードの品質はそれなりのものだとされているが、熟練した Rust プログラマが書くであろうものにはまったく及ばない。
採用とエコシステム
このコンパイラは本番用ツールとしてではなく能力のベンチマークとして構築されたものであり、それを書いたモデルの限界にほぼ達したものとして示されている。さらなる修正は完全には成功せず、新機能やバグ修正がしばしば既存の機能を壊した。開発は、git とロックファイルを介して協調する並列エージェントのハーネスと、GCC を既知の正解を返すオラクルとして使うことに依拠しており、後者によって異なるエージェントが、失敗している異なるカーネルファイルに同時に取り組めるようになった。読者は、これをダウンロードして自分の C プロジェクトで試してみるよう勧められている。