概要
- Zig は汎用プログラミング言語とツールチェーン
- Zig Software Foundation が開発資金を提供
- 最新リリースは 5ヶ月間・206人の貢献者・925コミット
- ビルドシステム刷新 ・ELFリンカ強化・新規ターゲット追加
- ターゲットサポート や主要変更点を詳細に解説
Zig 最新リリース概要
- Zig は堅牢・最適・再利用可能なソフトウェアのための プログラミング言語およびツールチェーン
- Zig Software Foundation (501(c)(3)非営利法人)が開発を支援
- 継続的な寄付 を推奨し、コアチームへの工数増加を狙う
- Every.org 経由の寄付で領収書発行やGitHub Sponsorsからの移行も容易
- 今回のリリースは 5ヶ月の作業成果 で、206人の貢献者による925コミットを反映
主な変更点と新機能
- ビルドシステム大幅刷新 :Build Server Protocol導入
- ELFリンカ強化 :x86_64-linuxでインクリメンタルコンパイルが安定動作
- ターゲット追加・強化 :aarch64-openbsdのCIテスト追加、loongarch32-linux等の新規サポート
- 標準ライブラリの拡張 :x32・N32 ABI対応、複数新アーキテクチャへのポーティング
- Zigコンパイラの強化 :スタックトレースの改善やポインタ認証対応
- サポート終了/変更 :powerpc-linux-gnueabi[hf]・powerpc64-linux-gnuなど一部ターゲットのサポート終了
ターゲットサポートとTierシステム
- Tier 1 :全非実験的機能が動作し、LLVMに依存せず機械語生成可能
- Tier 2 :標準ライブラリ抽象化・スタックトレース・libc利用可能・CIでモジュールテスト
- Tier 3 :LLVM等外部バックエンド依存でのコード生成・リンカによるバイナリ生成
- Tier 4 :アセンブリまたはCソースコード生成のみ対応
- 対応状況は サポートテーブル で詳細に記載(✅:完全対応, ⚠️:部分対応, ❌:未対応, ❔:不明)
主要ターゲットの最新動向
- aarch64-openbsd :CIテスト追加で品質向上
- aarch64-freebsd/netbsd :プルリクエストでもCI実行
- loongarch32/64-linux :新規対応
- x32・N32 ABI :x86-64・MIPS 64bitでの32bitポインタ利用可能
- SPARC・ARM 32bit :クラッシュ時のスタックトレース追加
- ゲーム機向けターゲット :aarch64-switch、arm-gba等、初期サポート
OSバージョン要件
- Darwin :15.0以上
- DragonFly BSD :6.4以上
- FreeBSD :14.0以上
- Linux :5.10以上
- NetBSD :10.1以上
- OpenBSD :7.8以上
- Windows :10以上
寄付・貢献者への感謝
- Zig Software Foundation への寄付が開発の加速に直結
- 多数の貢献者とスポンサー への謝意
詳細: ターゲットサポートテーブル
- 各ターゲットごとにTier・コード生成・リンカ・言語機能・標準ライブラリ・スタックトレース・Fuzzer・libc・CI対応状況を明示
- 🪦 マークは将来的にサポート終了予定のターゲット
- 部分サポート や 既知の問題 についても表記
まとめ
- Zig は多様なアーキテクチャ・OSに対応し、 堅牢なビルドシステム・リンカ機能 を備える
- 開発の継続にはコミュニティ支援が不可欠
- 最新リリースは 多くの新機能・改善・ターゲット拡充 を実現
参考: 公式ドキュメント・ダウンロード
- 公式サイト・ドキュメント で最新情報・ダウンロード・詳細なターゲットリストを参照可能
https://ziglang.org/news/0.17.0-released/