Zig Builds Are Getting Faster
📄 Summarized by Claude Sonnet 4.5
Zig Builds Are Getting Faster
2025年(記事公開日は明記なし、Zig 0.15.1リリース後)
どんなもの?
Zig 0.15.1におけるコンパイル速度の劇的な改善を、実際のGhosttyプロジェクトのビルド時間で検証した報告
Andrew Kelleyの「コンパイラが遅すぎるからバグが生まれる」という哲学のもと、数年間にわたる最適化作業の成果が現れ始めている
全てのビルドシナリオ(ビルドスクリプト、完全ビルド、インクリメンタルビルド)で顕著な速度向上を実現
先行研究と比べてどこがすごい?
Zig 0.14と比較して全シナリオで高速化を達成:ビルドスクリプトが76%高速化(7.2秒→1.7秒)、完全ビルドが22%高速化(41秒→32秒)
LLVMを使用している状態でもこの改善を実現しており、self-hosted backendへの完全移行後はさらなる高速化(推定50%削減)が期待される
libghostty-vtでは既にself-hosted x86_64バックエンドを使用し、インクリメンタルビルドが1秒未満(975ms)を達成
技術や手法のキモはどこ?
LLVMからの脱却(yeeting LLVM)と独自のコード生成バックエンドの開発が核心
独自リンカーの実装により、ツールチェーン全体の最適化を実現
インクリメンタルコンパイルへの段階的な移行(現在は未完成だが、完成後はミリ秒単位のビルド時間が期待される)
x86_64とaarch64のself-hostedバックエンドが既にデバッグビルドで安定動作
どうやって有効だと検証した?
同一のx86_64 Linuxマシン上で複数のシナリオを測定:ビルドスクリプトコンパイル(zig build --help)、キャッシュなしの完全ビルド、1行変更後のインクリメンタルビルド
実際の本番プロジェクト(Ghostty)を使用し、実用的なワークフローでの体感速度も評価
LLVM使用時と非使用時(libghostty-vt)の両方で測定し、バックエンドの影響を定量化
議論はある?
インクリメンタルコンパイルが完全に機能すれば、ビルド時間がミリ秒単位まで短縮される可能性がある
self-hosted x86_64バックエンドは既に安定しているが、Ghostty全体のビルドにはまだバグがあり、数ヶ月以内の解決が見込まれる
著者は「今後数年で、今日の結果が遅く見えるほどの改善」を予測しており、コンパイル速度重視の方針が継続される
開発者の実際のワークフローにも影響:ビルド待ち時間がなくなり、フロー状態を維持できるようになった
Zigコンパイラ
ビルド時間最適化
セルフホストバックエンド
インクリメンタルコンパイル
パフォーマンス改善