3 ポイント 投稿者 bus710 12 일 전 | 2件のコメント | WhatsAppで共有

2026年4月14日に公開されました。244人のコントリビューターが8か月にわたって1,183件のコミットを積み重ねて作り上げたリリースです。

I/O as an Interface — 今回のリリースの中核

今回のリリースで最も大きな変更です。ファイルシステム、ネットワーキング、タイマー、同期化のように、ブロッキングが発生しうるほぼすべてのものを新しい std.Io インターフェースにまとめました。メモリ割り当て時に Allocator が必要なように、これからは I/O を使うコードはすべて Io インスタンスを受け取る必要があります。これにより、並行性モデルに依存せず再利用可能なパッケージを作れるようになり、イベントループも言語レベルで適切に扱えるようになりました。

実装は3種類あります:

  • Io.Threaded — スレッドベースの完成された実装です。Cancellation もサポートし、0.15.x から移行した際も動作はそのまま維持されます
  • Io.Evented — ユーザースペースのスタックスイッチング(グリーンスレッド)方式による実験的な実装です
  • Io.Uring — Linux io_uring ベースの PoC 実装です

コンパイラ

  • LLVM バックエンドでも Incremental Compilation が可能に — コンパイルエラーがある場合、LLVM Emit Object ステージをスキップするため、エラーをはるかに速く確認できます
  • 型解決(Type Resolution)を全面的に刷新 — 内部依存グラフが循環構造から DAG に変わりました。名前空間としてのみ使われる型は不要な解析を行わなくなり、バイナリサイズも小さくなります。依存ループのエラーメッセージも、どこで問題が絡み合っているのかをはるかに分かりやすく示します
  • aarch64 バックエンド — Debug モードのデフォルトとして使うことを目標に精力的に開発中です
  • 組み込み Fuzzer がさらに強化 — AST Smith ベースのマルチプロセスファジング、Infinite Mode、クラッシュダンプ機能が追加されました

言語変更(Breaking Changes)

マイグレーションが必要な変更点です:

  • @cImport がビルドシステムに移されました
  • @Type ビルトインが削除 — 型ごとの個別ビルトインに置き換えられました
  • Lazy Field Analysis を導入 — 名前空間としてのみ使われる型はフィールド解析を行いません
  • packed union/struct の中にポインタを入れられなくなりました
  • posix および os.windows 関連 API が多数削除されました

標準ライブラリ

  • heap.ArenaAllocator がスレッドセーフかつロックフリーになり、heap.ThreadSafe Allocator は削除されました
  • Deflate 圧縮が追加され、展開 API もよりシンプルになりました
  • std.crypto に AES-SIV、AES-GCM-SIV、Ascon-AEAD、Ascon-Hash が追加されました
  • Thread.PoolGenericReader / AnyReader / FixedBufferStream が削除されました
  • Windows ネットワーキングws2_32.dll なしでも動作し、NtDll へのマイグレーションも完了しました

ツールチェーン更新

LLVM 21、musl 1.2.5、glibc 2.43、Linux 6.19 ヘッダー、macOS 26.4 ヘッダー、FreeBSD 15.0 libc に更新されました。


次のリリース(0.17.0)の方向性

async I/O の安定化、aarch64 バックエンドの Debug モード既定化、LLD 依存の削減、Incremental Compilation をサポートするリンカー実装が主な目標です。

2件のコメント

 
bus710 12 일 전

昨晩、Zig Language Server も 0.16 がリリースされました。

言語本体が出てから数か月後にようやくランサブが出ることも多く、最新バージョンを使うのをためらうことがあったのですが、今回は本当にすぐに対応版が出ましたね。おかげでこの新バージョンをより早く簡単に使えるようになりました。

 
bus710 12 일 전

しまった、リンク……

https://github.com/zigtools/zls/releases