Rilis Zig 0.16.0
(ziglang.org)Diumumkan pada 14 April 2026. Ini adalah rilis yang dibuat oleh 244 kontributor dengan 1.183 commit selama 8 bulan.
I/O as an Interface — inti dari rilis ini
Ini adalah perubahan terbesar di rilis kali ini. Hampir semua hal yang bisa menyebabkan blocking, seperti filesystem, networking, timer, dan sinkronisasi, kini disatukan dalam antarmuka baru std.Io. Seperti Allocator dibutuhkan saat melakukan alokasi memori, sekarang semua kode yang menggunakan I/O harus menerima instance Io. Berkat ini, paket yang dapat digunakan ulang bisa dibuat tanpa bergantung pada model konkurensi tertentu, dan event loop juga kini bisa ditangani dengan benar di level bahasa.
Ada tiga implementasi:
Io.Threaded— implementasi lengkap berbasis thread. Mendukung cancellation, dan perilakunya tetap sama saat berpindah dari 0.15.xIo.Evented— implementasi eksperimental dengan pendekatan user-space stack switching (green thread)Io.Uring— implementasi PoC berbasis Linuxio_uring
Kompiler
- Incremental Compilation kini juga tersedia di backend LLVM — jika ada error kompilasi, tahap LLVM Emit Object dilewati sehingga error bisa diperiksa jauh lebih cepat
- Type Resolution dirombak total — graf dependensi internal berubah dari struktur siklik menjadi DAG. Tipe yang hanya dipakai sebagai namespace tidak lagi dianalisis secara tidak perlu, sehingga ukuran biner juga berkurang. Pesan error untuk loop dependensi juga kini jauh lebih jelas menunjukkan sumber masalahnya
- Backend aarch64 — sedang dikembangkan intensif dengan target menjadi default untuk mode Debug
- Fuzzer bawaan menjadi lebih kuat — ditambahkan fuzzing multiproses berbasis AST Smith, Infinite Mode, dan fitur crash dump
Perubahan bahasa (Breaking Changes)
Ini adalah perubahan yang memerlukan migrasi:
@cImportdipindahkan ke build system- Builtin
@Typetelah dihapus — digantikan oleh builtin individual untuk tiap tipe - Lazy Field Analysis ditambahkan — tipe yang hanya dipakai sebagai namespace tidak akan dianalisis field-nya
- Pointer tidak lagi bisa dimasukkan ke dalam packed union/struct
- Banyak API terkait
posixdanos.windowstelah dihapus
Standard library
heap.ArenaAllocatorkini menjadi thread-safe + lock-free, dan allocatorheap.ThreadSafetelah dihapus- Kompresi Deflate telah ditambahkan, dan API dekompresinya juga dibuat lebih sederhana
std.cryptokini menambahkan AES-SIV, AES-GCM-SIV, Ascon-AEAD, dan Ascon-HashThread.Pool,GenericReader/AnyReader/FixedBufferStreamtelah dihapus- Networking Windows kini dapat berjalan tanpa
ws2_32.dll, dan migrasi NtDll juga telah selesai
Pembaruan toolchain
Naik ke LLVM 21, musl 1.2.5, glibc 2.43, header Linux 6.19, header macOS 26.4, dan libc FreeBSD 15.0.
Arah rilis berikutnya (0.17.0)
Target utamanya adalah stabilisasi async I/O, menjadikan backend aarch64 sebagai default untuk mode Debug, menghapus dependensi pada LLD, dan mengimplementasikan linker yang mendukung Incremental Compilation.
2 komentar
Tadi malam Zig Language Server juga merilis versi 0.16.
Sering kali language server baru muncul beberapa bulan setelah bahasanya dirilis, jadi saya kerap ragu untuk memakai versi terbaru, tetapi kali ini versi yang cocok benar-benar keluar dengan sangat cepat. Berkat itu, versi baru ini jadi bisa digunakan dengan lebih cepat dan mudah.
Ups, tautannya...
https://github.com/zigtools/zls/releases