3 puan yazan bus710 12 일 전 | 2 yorum | WhatsApp'ta paylaş

14 Nisan 2026'da duyuruldu. 244 katkıcı tarafından 8 ay boyunca biriken 1.183 commit ile hazırlanan bir sürüm.

Bir Arayüz Olarak I/O — Bu sürümün odağı

Bu sürümdeki en büyük değişiklik bu. Dosya sistemi, ağ iletişimi, zamanlayıcılar ve senkronizasyon gibi bloklamaya neden olabilecek neredeyse her şey yeni std.Io arayüzü altında toplandı. Bellek ayırırken Allocator gerekmesi gibi, artık I/O kullanan tüm kodların bir Io örneği alması gerekiyor. Bu sayede eşzamanlılık modelinden bağımsız olarak yeniden kullanılabilir paketler oluşturmak mümkün oluyor ve event loop da dil düzeyinde düzgün biçimde ele alınabiliyor.

Üç uygulama bulunuyor:

  • Io.Threaded — İş parçacığı tabanlı, tamamlanmış bir uygulama. Cancellation desteği de var ve 0.15.x'ten geçişte davranış aynı kalıyor
  • Io.Evented — User-space stack switching (green thread) yaklaşımına sahip deneysel bir uygulama
  • Io.Uring — Linux io_uring tabanlı bir PoC uygulaması

Derleyici

  • LLVM backend'de de Incremental Compilation artık mümkün — Derleme hatası olduğunda LLVM Emit Object adımı atlandığı için hataları çok daha hızlı görmek mümkün
  • Type Resolution baştan sona yenilendi — Dahili bağımlılık grafiği döngüsel yapıdan DAG'e dönüştürüldü. Yalnızca namespace olarak kullanılan tiplerde gereksiz analiz yapılmadığı için ikili dosya boyutu da küçülüyor. Bağımlılık döngüsü hata mesajları da sorunun nerede düğümlendiğini çok daha iyi gösteriyor
  • aarch64 backend — Debug modunda varsayılan olarak kullanılmasını hedefleyen yoğun geliştirme sürüyor
  • Yerleşik fuzzer daha da güçlendi — AST Smith tabanlı çok süreçli fuzzing, Infinite Mode ve crash dump özellikleri eklendi

Dil değişiklikleri (Breaking Changes)

Geçiş gerektiren değişiklikler şunlar:

  • @cImport build sistemine taşındı
  • @Type builtin kaldırıldı — Yerine tipe özel ayrı builtin'ler geldi
  • Lazy Field Analysis eklendi — Yalnızca namespace olarak kullanılan tiplerde alan analizi yapılmıyor
  • packed union/struct içine artık pointer konulamıyor
  • posix ve os.windows ile ilgili birçok API kaldırıldı

Standart kütüphane

  • heap.ArenaAllocator artık thread-safe ve lock-free; heap.ThreadSafe Allocator ise kaldırıldı
  • Deflate sıkıştırması eklendi ve açma API'si de sadeleştirildi
  • std.crypto içine AES-SIV, AES-GCM-SIV, Ascon-AEAD ve Ascon-Hash eklendi
  • Thread.Pool, GenericReader / AnyReader / FixedBufferStream kaldırıldı
  • Windows ağ iletişimi artık ws2_32.dll olmadan çalışıyor ve NtDll geçişi de tamamlandı

Toolchain güncellemeleri

LLVM 21, musl 1.2.5, glibc 2.43, Linux 6.19 header'ları, macOS 26.4 header'ları ve FreeBSD 15.0 libc sürümüne geçildi.


Bir sonraki sürümün (0.17.0) yönü

Başlıca hedefler async I/O'nun kararlı hale getirilmesi, aarch64 backend'in Debug modunda varsayılan yapılması, LLD bağımlılığının kaldırılması ve Incremental Compilation destekleyen bir linker'ın uygulanması.

2 yorum

 
bus710 12 일 전

Dün gece Zig Language Server da 0.16 sürümüyle yayımlandı.

Dil çıktıktan sonra dil sunucusunun ancak birkaç ay sonra geldiği durumlar sık olduğundan en güncel sürümü kullanmaya çekinirdim; ama bu kez gerçekten çok hızlı bir şekilde uyumlu sürüm çıkmış. Bu sayede bu yeni sürümü daha hızlı ve daha kolay kullanabilir hale geldik.