Zig 0.16.0 रिलीज़
(ziglang.org)यह 14 अप्रैल 2026 को जारी किया गया था। यह रिलीज़ 244 योगदानकर्ताओं द्वारा 8 महीनों में किए गए 1,183 कमिट्स का परिणाम है।
I/O as an Interface — इस रिलीज़ का मुख्य बिंदु
यह इस रिलीज़ का सबसे बड़ा बदलाव है। फ़ाइलसिस्टम, नेटवर्किंग, टाइमर, सिंक्रोनाइज़ेशन जैसी लगभग हर वह चीज़ जिसमें blocking हो सकती है, अब नए std.Io इंटरफ़ेस के तहत लाई गई है। जैसे मेमोरी allocate करते समय Allocator की ज़रूरत होती है, वैसे ही अब I/O का उपयोग करने वाले हर कोड को Io instance लेना होगा। इसकी वजह से concurrency model से स्वतंत्र reusable packages बनाना संभव हो गया है, और event loop को भी भाषा-स्तर पर ठीक तरह से संभाला जा सकता है।
इसके तीन implementations हैं:
Io.Threaded— thread-आधारित पूर्ण implementation। यह cancellation भी support करता है, और 0.15.x से आने पर व्यवहार पहले जैसा ही रहता हैIo.Evented— user-space stack switching (green thread) तरीके की experimental implementationIo.Uring— Linuxio_uringआधारित PoC implementation
कंपाइलर
- LLVM backend में भी Incremental Compilation उपलब्ध है — compile error होने पर LLVM Emit Object चरण को छोड़ दिया जाता है, इसलिए errors को बहुत तेज़ी से देखा जा सकता है
- Type Resolution को पूरी तरह से फिर से बनाया गया है — internal dependency graph को circular structure से DAG में बदला गया है। जो types केवल namespace के रूप में उपयोग होते हैं, उनके लिए अनावश्यक analysis नहीं किया जाता, जिससे binary size भी कम होती है। dependency loop error messages अब यह भी कहीं बेहतर दिखाते हैं कि समस्या कहाँ उलझी
- aarch64 backend — इसे Debug mode के default के रूप में उपयोग करने के लक्ष्य के साथ तेज़ी से विकसित किया जा रहा है
- built-in Fuzzer अब और मज़बूत हो गया है — AST Smith आधारित multiprocess fuzzing, Infinite Mode, और crash dump फीचर जोड़े गए हैं
भाषा परिवर्तन (Breaking Changes)
ये वे बदलाव हैं जिनके लिए migration की ज़रूरत होगी:
@cImportको build system में स्थानांतरित कर दिया गया है@Typebuiltin हटा दिया गया है — इसकी जगह type-specific individual builtins आए हैं- Lazy Field Analysis जोड़ा गया है — जो types केवल namespace के रूप में उपयोग होते हैं, उनके fields का analysis नहीं किया जाता
- packed union/struct के अंदर pointers अब नहीं रखे जा सकते
posixऔरos.windowsसे जुड़े कई API हटा दिए गए हैं
स्टैंडर्ड लाइब्रेरी
heap.ArenaAllocatorअब thread-safe + lock-free हो गया है, औरheap.ThreadSafeAllocator हटा दिया गया है- Deflate compression जोड़ा गया है, और decompression API भी अधिक सरल बना दिया गया है
std.cryptoमें AES-SIV, AES-GCM-SIV, Ascon-AEAD, Ascon-Hash जोड़े गए हैंThread.Pool,GenericReader/AnyReader/FixedBufferStreamहटा दिए गए हैं- Windows networking अब
ws2_32.dllके बिना भी काम करती है, और NtDll migration भी पूरा हो गया है
टूलचेन अपडेट
इसे LLVM 21, musl 1.2.5, glibc 2.43, Linux 6.19 headers, macOS 26.4 headers, और FreeBSD 15.0 libc तक अपडेट किया गया है।
अगली रिलीज़ (0.17.0) की दिशा
async I/O stabilization, aarch64 backend को Debug mode के default में बदलना, LLD dependency हटाना, और Incremental Compilation को support करने वाले linker का implementation प्रमुख लक्ष्य हैं।
अभी कोई टिप्पणी नहीं है.