Zig新ELFリンカーで高速増分コンパイルを実現
原題: Zig ELF Linker Improvements Devlog
なぜ重要か
プログラミング言語の高速コンパイル機能は開発生産性向上の重要な要素で、ミリ秒単位でのビルド時間短縮は開発者エクスペリエンスを大幅に改善する
Zigプログラミング言語の開発者Matthew Luggが、新しいELFリンカーの改良について発表した。このリンカーはZig 0.16.0でデビューし、現在はZigコンパイラ自体をビルド可能で、30ms程度の高速増分ビルドを実現している。x86_64 Linux環境で利用可能。
Zigプログラミング言語の開発者Matthew Luggは、新しいELFリンカーの大幅な改良について報告した。このリンカーはZig 0.16.0で初登場したが、当時は初期段階で外部ライブラリをサポートしていなかった。しかし、最新の改良により、LLVMとLLDライブラリを有効にしたZigコンパイラのビルドが可能になった。
新リンカーの最大の特徴は高速増分コンパイルのサポートで、外部ライブラリやCソースファイルを含むプロジェクトでも、追加の性能オーバーヘッドなしに増分リビルドが可能だ。デモンストレーションでは、TetrisクローンやZigコンパイラ自体の変更が30ms程度でリビルドされている。初回ビルドには36秒かかったが、その後の増分ビルドは200-300ms台で完了した。
現在の制限として、ZigコードのDWARFデバッグ情報生成がまだサポートされていないが、これが次の優先課題となっている。新リンカーは-fnew-linkerフラグで有効化でき、x86_64 Linux環境で利用可能だ。来る0.17.0リリースでより多くのユーザーが利用できるようになる予定。