HeadlinesBriefing HeadlinesBriefing 12 languages

Zig v0.17.0

Hacker News ·

🇬🇧 English

Zig 0.17.0 is now available, featuring 5 months of work from 206 contributors across 925 commits. This release includes a reworked Build System with the new Build Server Protocol, and an enhanced ELF Linker enabling Incremental Compilation on x86_64-linux.

Language changes include added @bitCast changes, formally specified and fuzzed grammar, C translation moving to an external package, new @backingInt and @fromBackingInt, @spirv type, removed array multiplication syntax, and more. Standard library updates introduce a Safe Allocator, reworked Stack Fallback Allocator, and improved formatting.

The Build System now separates the maker process from the configurer process, with a reworked cache system and configure cache poisoning. Package management adds the ability to override package paths, and the compiler introduces incremental compilation, SPIR-V backend, and improved aarch64, loongarch, and WebAssembly backends.

Toolchain updates include LLVM 22, musl 1.2.5, glibc 2.44, Linux 7.2 headers, macOS 27.0 headers, and more. Notable fixes address an LLVM bug affecting aarch64-windows binaries and add stack traces on crashes for 32-bit ARM. The release also introduces a --complexity flag for zig fmt and moves Windows resource compilation to an external package.

View original article →


🇸🇦 العربية

ملاحظات إصدار Zig 0.17.0: نظام البناء، رابط ELF

Zig 0.17.0 متاح الآن، ويضم 5 أشهر من العمل من 206 مساهمين عبر 925 التزامًا. يتضمن هذا الإصدار نظام بناء مُعاد تصميمه مع بروتوكول خادم البناء الجديد، ورابط ELF محسّن يتيح التجميع المتزايد على x86_64-linux.

تتضمن تغييرات اللغة إضافات @bitCast، وقواعد نحوية محددة رسميًا ومُختبرة بالتعتيم، ونقل ترجمة C إلى حزمة خارجية، و @backingInt و @fromBackingInt الجديدين، ونوع @spirv، وإزالة بناء جملة ضرب المصفوفات، والمزيد. تقدم تحديثات المكتبة القياسية مُخصصًا آمنًا، ومُخصص تراجع المكدس مُعاد تصميمه، وتنسيقًا محسنًا.

يفصل نظام البناء الآن عملية الصانع عن عملية المكوّن، مع نظام تخزين مؤقت مُعاد تصميمه وتسميم ذاكرة التخزين المؤقت للتكوين. تضيف إدارة الحزم القدرة على تجاوز مسارات الحزم، ويقدم المترجم التجميع المتزايد، والواجهة الخلفية SPIR-V، والواجهات الخلفية المحسنة aarch64 و loongarch و WebAssembly.

تتضمن تحديثات مجموعة الأدوات LLVM 22 و musl 1.2.5 و glibc 2.44 ورؤوس Linux 7.2 ورؤوس macOS 27.0 والمزيد. تعالج الإصلاحات البارزة خطأ LLVM الذي يؤثر على ثنائيات aarch64-windows وتضيف تتبعات المكدس عند الأعطال لـ ARM 32 بت. يقدم الإصدار أيضًا علامة --complexity لـ zig fmt وينقل تجميع موارد Windows إلى حزمة خارجية.

ما هو التغيير الأكثر أهمية في Zig 0.17.0؟

التغيير الأكثر أهمية هو نظام البناء المُعاد تصميمه مع إدخال بروتوكول خادم البناء، وتحسين رابط ELF الذي يتيح التجميع المتزايد للجميع على x86_64-linux.

العربية version →


🇧🇩 বাংলা

Zig 0.17.0 রিলিজ নোট: বিল্ড সিস্টেম, ELF লিঙ্কার

Zig 0.17.0 এখন উপলব্ধ, 206 জন অবদানকারীর 925টি কমিটে 5 মাসের কাজ সম্বলিত। এই রিলিজে নতুন বিল্ড সার্ভার প্রোটোকল সহ পুনর্নির্মিত বিল্ড সিস্টেম এবং x86_64-linux-এ ইনক্রিমেন্টাল কম্পাইলেশন সক্ষমকারী উন্নত ELF লিঙ্কার অন্তর্ভুক্ত।

ভাষা পরিবর্তনের মধ্যে রয়েছে @bitCast পরিবর্তন, আনুষ্ঠানিকভাবে নির্দিষ্ট এবং ফাজ করা ব্যাকরণ, C অনুবাদ বাহ্যিক প্যাকেজে স্থানান্তরিত, নতুন @backingInt এবং @fromBackingInt, @spirv টাইপ, অপসারিত অ্যারে গুণন সিনট্যাক্স এবং আরও অনেক কিছু। স্ট্যান্ডার্ড লাইব্রেরি আপডেট একটি নিরাপদ বরাদ্দকারী, পুনর্নির্মিত স্ট্যাক ফলব্যাক বরাদ্দকারী এবং উন্নত ফরম্যাটিং প্রবর্তন করে।

বিল্ড সিস্টেম এখন নির্মাতা প্রক্রিয়াকে কনফিগারকারী প্রক্রিয়া থেকে পৃথক করে, একটি পুনর্নির্মিত ক্যাশ সিস্টেম এবং কনফিগার ক্যাশ পয়জনিং সহ। প্যাকেজ ম্যানেজমেন্ট প্যাকেজ পাথ ওভাররাইড করার ক্ষমতা যোগ করে, এবং কম্পাইলার ইনক্রিমেন্টাল কম্পাইলেশন, SPIR-V ব্যাকএন্ড এবং উন্নত aarch64, loongarch এবং WebAssembly ব্যাকএন্ড প্রবর্তন করে।

টুলচেইন আপডেটের মধ্যে রয়েছে LLVM 22, musl 1.2.5, glibc 2.44, Linux 7.2 হেডার, macOS 27.0 হেডার এবং আরও অনেক কিছু। উল্লেখযোগ্য ফিক্স aarch64-windows বাইনারি প্রভাবিতকারী LLVM বাগ সমাধান করে এবং 32-বিট ARM-এর জন্য ক্র্যাশে স্ট্যাক ট্রেস যোগ করে। রিলিজটি zig fmt-এর জন্য --complexity ফ্ল্যাগও প্রবর্তন করে এবং Windows রিসোর্স কম্পাইলেশন একটি বাহ্যিক প্যাকেজে স্থানান্তর করে।

Zig 0.17.0-এ সবচেয়ে গুরুত্বপূর্ণ পরিবর্তন কী?

সবচেয়ে গুরুত্বপূর্ণ পরিবর্তন হল বিল্ড সার্ভার প্রোটোকল প্রবর্তনের সাথে পুনর্নির্মিত বিল্ড সিস্টেম এবং x86_64-linux-এ সবার জন্য ইনক্রিমেন্টাল কম্পাইলেশন সক্ষমকারী ELF লিঙ্কার উন্নতি।

বাংলা version →


🇩🇪 Deutsch

Versionshinweise zu Zig 0.17.0: Build-System, ELF-Linker

Zig 0.17.0 ist jetzt verfügbar und bietet 5 Monate Arbeit von 206 Mitwirkenden in 925 Commits. Diese Version enthält ein überarbeitetes Build-System mit dem neuen Build-Server-Protokoll und einen verbesserten ELF-Linker, der inkrementelle Kompilierung auf x86_64-linux ermöglicht.

Sprachänderungen umfassen @bitCast-Änderungen, eine formal spezifizierte und gefuzze Grammatik, die Verschiebung der C-Übersetzung in ein externes Paket, neue @backingInt und @fromBackingInt, den @spirv-Typ, die Entfernung der Array-Multiplikationssyntax und mehr. Aktualisierungen der Standardbibliothek führen einen sicheren Allokator, einen überarbeiteten Stack-Fallback-Allokator und verbesserte Formatierung ein.

Das Build-System trennt nun den Herstellerprozess vom Konfiguratorprozess, mit einem überarbeiteten Cache-System und Konfigurations-Cache-Vergiftung. Die Paketverwaltung fügt die Möglichkeit hinzu, Paketpfade zu überschreiben, und der Compiler führt inkrementelle Kompilierung, SPIR-V-Backend und verbesserte aarch64-, loongarch- und WebAssembly-Backends ein.

Toolchain-Updates umfassen LLVM 22, musl 1.2.5, glibc 2.44, Linux 7.2-Header, macOS 27.0-Header und mehr. Bemerkenswerte Fehlerbehebungen beheben einen LLVM-Fehler, der aarch64-windows-Binärdateien betrifft, und fügen Stack-Traces bei Abstürzen für 32-Bit-ARM hinzu. Die Version führt auch ein --complexity-Flag für zig fmt ein und verschiebt die Windows-Ressourcenkompilierung in ein externes Paket.

Was ist die bedeutendste Änderung in Zig 0.17.0?

Die bedeutendste Änderung ist das überarbeitete Build-System mit der Einführung des Build-Server-Protokolls und die Verbesserung des ELF-Linkers, die inkrementelle Kompilierung für alle auf x86_64-linux ermöglicht.

Deutsch version →


🇪🇸 Español

Notas de la versión Zig 0.17.0: Sistema de compilación, enlazador ELF

Zig 0.17.0 ya está disponible, con 5 meses de trabajo de 206 colaboradores en 925 commits. Esta versión incluye un sistema de compilación rediseñado con el nuevo Protocolo de Servidor de Compilación y un enlazador ELF mejorado que permite la compilación incremental en x86_64-linux.

Los cambios en el lenguaje incluyen cambios en @bitCast, una gramática formalmente especificada y fuzzeada, la traducción de C movida a un paquete externo, nuevos @backingInt y @fromBackingInt, tipo @spirv, eliminación de la sintaxis de multiplicación de arreglos, y más. Las actualizaciones de la biblioteca estándar introducen un Asignador Seguro, un Asignador de Reserva de Pila rediseñado y formato mejorado.

El sistema de compilación ahora separa el proceso del creador del proceso del configurador, con un sistema de caché rediseñado y envenenamiento de caché de configuración. La gestión de paquetes agrega la capacidad de anular rutas de paquetes, y el compilador introduce compilación incremental, backend SPIR-V y backends aarch64, loongarch y WebAssembly mejorados.

Las actualizaciones del conjunto de herramientas incluyen LLVM 22, musl 1.2.5, glibc 2.44, encabezados de Linux 7.2, encabezados de macOS 27.0 y más. Las correcciones notables abordan un error de LLVM que afecta a los binarios aarch64-windows y agregan seguimientos de pila en fallos para ARM de 32 bits. La versión también introduce una bandera --complexity para zig fmt y mueve la compilación de recursos de Windows a un paquete externo.

¿Cuál es el cambio más significativo en Zig 0.17.0?

El cambio más significativo es el sistema de compilación rediseñado con la introducción del Protocolo de Servidor de Compilación y la mejora del enlazador ELF que permite la compilación incremental para todos en x86_64-linux.

Español version →


🇫🇷 Français

Notes de version Zig 0.17.0 : Système de construction, lieur ELF

Zig 0.17.0 est désormais disponible, avec 5 mois de travail de 206 contributeurs sur 925 commits. Cette version inclut un système de construction remanié avec le nouveau protocole de serveur de construction, et un lieur ELF amélioré permettant la compilation incrémentielle sur x86_64-linux.

Les changements de langage incluent des modifications @bitCast, une grammaire formellement spécifiée et fuzzée, la traduction C déplacée vers un paquet externe, de nouveaux @backingInt et @fromBackingInt, le type @spirv, la suppression de la syntaxe de multiplication de tableaux, et plus encore. Les mises à jour de la bibliothèque standard introduisent un allocateur sécurisé, un allocateur de repli de pile remanié et un formatage amélioré.

Le système de construction sépare désormais le processus du fabricant du processus du configurateur, avec un système de cache remanié et un empoisonnement du cache de configuration. La gestion des paquets ajoute la possibilité de remplacer les chemins des paquets, et le compilateur introduit la compilation incrémentielle, le backend SPIR-V, et des backends aarch64, loongarch et WebAssembly améliorés.

Les mises à jour de la chaîne d'outils incluent LLVM 22, musl 1.2.5, glibc 2.44, les en-têtes Linux 7.2, les en-têtes macOS 27.0, et plus encore. Les correctifs notables corrigent un bogue LLVM affectant les binaires aarch64-windows et ajoutent des traces de pile en cas de crash pour ARM 32 bits. La version introduit également un indicateur --complexity pour zig fmt et déplace la compilation des ressources Windows vers un paquet externe.

Quel est le changement le plus significatif dans Zig 0.17.0 ?

Le changement le plus significatif est le système de construction remanié avec l'introduction du protocole de serveur de construction, et l'amélioration du lieur ELF permettant la compilation incrémentielle pour tout le monde sur x86_64-linux.

Français version →


🇮🇳 हिन्दी

Zig 0.17.0 रिलीज़ नोट्स: बिल्ड सिस्टम, ELF लिंकर

Zig 0.17.0 अब उपलब्ध है, जिसमें 206 योगदानकर्ताओं के 925 कमिट में 5 महीने का काम शामिल है। इस रिलीज़ में नए बिल्ड सर्वर प्रोटोकॉल के साथ पुनर्निर्मित बिल्ड सिस्टम और x86_64-linux पर इन्क्रीमेंटल कंपाइलेशन सक्षम करने वाला उन्नत ELF लिंकर शामिल है।

भाषा परिवर्तनों में @bitCast परिवर्तन, औपचारिक रूप से निर्दिष्ट और फ़ज़ किया गया व्याकरण, C अनुवाद बाहरी पैकेज में स्थानांतरित, नए @backingInt और @fromBackingInt, @spirv प्रकार, हटाई गई ऐरे गुणन सिंटैक्स और बहुत कुछ शामिल है। मानक पुस्तकालय अद्यतन एक सुरक्षित आवंटक, पुनर्निर्मित स्टैक फ़ॉलबैक आवंटक और बेहतर फ़ॉर्मेटिंग प्रस्तुत करते हैं।

बिल्ड सिस्टम अब निर्माता प्रक्रिया को कॉन्फ़िगरकर्ता प्रक्रिया से अलग करता है, जिसमें पुनर्निर्मित कैश सिस्टम और कॉन्फ़िगर कैश पॉइज़निंग शामिल है। पैकेज प्रबंधन पैकेज पथों को ओवरराइड करने की क्षमता जोड़ता है, और कंपाइलर इन्क्रीमेंटल कंपाइलेशन, SPIR-V बैकएंड और बेहतर aarch64, loongarch और WebAssembly बैकएंड प्रस्तुत करता है।

टूलचेन अद्यतनों में LLVM 22, musl 1.2.5, glibc 2.44, Linux 7.2 हेडर, macOS 27.0 हेडर और बहुत कुछ शामिल है। उल्लेखनीय सुधार aarch64-windows बाइनरी को प्रभावित करने वाले LLVM बग को संबोधित करते हैं और 32-बिट ARM के लिए क्रैश पर स्टैक ट्रेस जोड़ते हैं। रिलीज़ zig fmt के लिए --complexity फ़्लैग भी प्रस्तुत करती है और Windows संसाधन संकलन को बाहरी पैकेज में स्थानांतरित करती है।

Zig 0.17.0 में सबसे महत्वपूर्ण परिवर्तन क्या है?

सबसे महत्वपूर्ण परिवर्तन बिल्ड सर्वर प्रोटोकॉल की शुरुआत के साथ पुनर्निर्मित बिल्ड सिस्टम और x86_64-linux पर सभी के लिए इन्क्रीमेंटल कंपाइलेशन सक्षम करने वाला ELF लिंकर संवर्द्धन है।

हिन्दी version →


🇮🇩 Bahasa Indonesia

Catatan Rilis Zig 0.17.0: Sistem Build, Penaut ELF

Zig 0.17.0 kini tersedia, menampilkan 5 bulan kerja dari 206 kontributor dalam 925 komit. Rilis ini mencakup sistem build yang dirancang ulang dengan Protokol Server Build baru, dan penaut ELF yang ditingkatkan yang memungkinkan Kompilasi Inkremental di x86_64-linux.

Perubahan bahasa mencakup perubahan @bitCast, tata bahasa yang ditentukan secara formal dan di-fuzz, penerjemahan C dipindahkan ke paket eksternal, @backingInt dan @fromBackingInt baru, tipe @spirv, sintaks perkalian array yang dihapus, dan banyak lagi. Pembaruan pustaka standar memperkenalkan Pengalokasi Aman, Pengalokasi Fallback Tumpukan yang dirancang ulang, dan pemformatan yang ditingkatkan.

Sistem Build sekarang memisahkan proses pembuat dari proses pengonfigurasi, dengan sistem cache yang dirancang ulang dan peracunan cache konfigurasi. Manajemen paket menambahkan kemampuan untuk mengganti jalur paket, dan kompiler memperkenalkan kompilasi inkremental, backend SPIR-V, dan backend aarch64, loongarch, dan WebAssembly yang ditingkatkan.

Pembaruan rantai alat mencakup LLVM 22, musl 1.2.5, glibc 2.44, header Linux 7.2, header macOS 27.0, dan banyak lagi. Perbaikan penting mengatasi bug LLVM yang memengaruhi biner aarch64-windows dan menambahkan pelacakan tumpukan pada crash untuk ARM 32-bit. Rilis ini juga memperkenalkan flag --complexity untuk zig fmt dan memindahkan kompilasi sumber daya Windows ke paket eksternal.

Apa perubahan paling signifikan di Zig 0.17.0?

Perubahan paling signifikan adalah sistem build yang dirancang ulang dengan pengenalan Protokol Server Build, dan peningkatan penaut ELF yang memungkinkan kompilasi inkremental untuk semua orang di x86_64-linux.

Bahasa Indonesia version →


🇯🇵 日本語

Zig 0.17.0 リリースノート:ビルドシステム、ELFリンカ

Zig 0.17.0 が利用可能になりました。206人のコントリビューターによる925のコミットで5ヶ月の作業を反映しています。このリリースには、新しいビルドサーバープロトコルを備えた再構築されたビルドシステムと、x86_64-linuxでのインクリメンタルコンパイルを可能にする強化されたELFリンカが含まれています。

言語の変更には、@bitCastの変更、正式に指定されファズテストされた文法、C翻訳の外部パッケージへの移動、新しい@backingIntと@fromBackingInt、@spirv型、配列乗算構文の削除などが含まれます。標準ライブラリの更新では、安全なアロケータ、再構築されたスタックフォールバックアロケータ、および改善されたフォーマットが導入されています。

ビルドシステムは、メーカープロセスとコンフィギュレータープロセスを分離し、再構築されたキャッシュシステムと設定キャッシュポイズニングを備えています。パッケージ管理ではパッケージパスをオーバーライドする機能が追加され、コンパイラはインクリメンタルコンパイル、SPIR-Vバックエンド、および改善されたaarch64、loongarch、WebAssemblyバックエンドを導入しています。

ツールチェーンの更新には、LLVM 22、musl 1.2.5、glibc 2.44、Linux 7.2ヘッダー、macOS 27.0ヘッダーなどが含まれます。注目すべき修正として、aarch64-windowsバイナリに影響するLLVMのバグに対処し、32ビットARMのクラッシュ時にスタックトレースを追加します。このリリースでは、zig fmtに--complexityフラグが導入され、Windowsリソースのコンパイルが外部パッケージに移動されました。

Zig 0.17.0 で最も重要な変更は何ですか?

最も重要な変更は、ビルドサーバープロトコルの導入による再構築されたビルドシステムと、x86_64-linux上のすべてのユーザーにインクリメンタルコンパイルを可能にするELFリンカの強化です。

日本語 version →


🇧🇷 Português

Notas de lançamento do Zig 0.17.0: Sistema de compilação, vinculador ELF

Zig 0.17.0 já está disponível, apresentando 5 meses de trabalho de 206 contribuidores em 925 commits. Esta versão inclui um sistema de compilação reformulado com o novo Protocolo de Servidor de Compilação e um vinculador ELF aprimorado que permite a compilação incremental em x86_64-linux.

As alterações na linguagem incluem mudanças no @bitCast, gramática formalmente especificada e testada com fuzzing, tradução de C movida para um pacote externo, novos @backingInt e @fromBackingInt, tipo @spirv, remoção da sintaxe de multiplicação de arrays e muito mais. As atualizações da biblioteca padrão introduzem um Alocador Seguro, um Alocador de Fallback de Pilha reformulado e formatação aprimorada.

O sistema de compilação agora separa o processo do criador do processo do configurador, com um sistema de cache reformulado e envenenamento de cache de configuração. O gerenciamento de pacotes adiciona a capacidade de substituir caminhos de pacotes, e o compilador introduz compilação incremental, backend SPIR-V e backends aarch64, loongarch e WebAssembly aprimorados.

As atualizações da cadeia de ferramentas incluem LLVM 22, musl 1.2.5, glibc 2.44, cabeçalhos do Linux 7.2, cabeçalhos do macOS 27.0 e muito mais. Correções notáveis abordam um bug do LLVM que afeta binários aarch64-windows e adicionam rastreamentos de pilha em falhas para ARM de 32 bits. A versão também introduz uma flag --complexity para zig fmt e move a compilação de recursos do Windows para um pacote externo.

Qual é a mudança mais significativa no Zig 0.17.0?

A mudança mais significativa é o sistema de compilação reformulado com a introdução do Protocolo de Servidor de Compilação e o aprimoramento do vinculador ELF que permite a compilação incremental para todos em x86_64-linux.

Português version →


🇷🇺 Русский

Примечания к выпуску Zig 0.17.0: Система сборки, компоновщик ELF

Zig 0.17.0 теперь доступен, включая 5 месяцев работы 206 участников в 925 коммитах. Этот выпуск включает переработанную систему сборки с новым протоколом сервера сборки и улучшенный компоновщик ELF, обеспечивающий инкрементальную компиляцию на x86_64-linux.

Изменения в языке включают изменения @bitCast, формально определенную и фаззированную грамматику, перенос трансляции C во внешний пакет, новые @backingInt и @fromBackingInt, тип @spirv, удаление синтаксиса умножения массивов и многое другое. Обновления стандартной библиотеки вводят безопасный распределитель, переработанный резервный распределитель стека и улучшенное форматирование.

Система сборки теперь разделяет процесс создателя и процесс конфигуратора, с переработанной системой кэша и отравлением кэша конфигурации. Управление пакетами добавляет возможность переопределять пути пакетов, а компилятор вводит инкрементальную компиляцию, бэкенд SPIR-V и улучшенные бэкенды aarch64, loongarch и WebAssembly.

Обновления инструментария включают LLVM 22, musl 1.2.5, glibc 2.44, заголовки Linux 7.2, заголовки macOS 27.0 и многое другое. Заметные исправления устраняют ошибку LLVM, затрагивающую двоичные файлы aarch64-windows, и добавляют трассировку стека при сбоях для 32-разрядной ARM. Выпуск также вводит флаг --complexity для zig fmt и переносит компиляцию ресурсов Windows во внешний пакет.

Какое самое значительное изменение в Zig 0.17.0?

Самое значительное изменение — это переработанная система сборки с введением протокола сервера сборки и улучшение компоновщика ELF, обеспечивающее инкрементальную компиляцию для всех на x86_64-linux.

Русский version →


🇨🇳 简体中文

Zig 0.17.0 发布说明:构建系统、ELF 链接器

Zig 0.17.0 现已发布,包含 5 个月的工作成果,来自 206 位贡献者的 925 次提交。此版本包括重构的构建系统,引入了新的构建服务器协议,以及增强的 ELF 链接器,支持 x86_64-linux 上的增量编译。

语言变化包括添加了 @bitCast 更改、正式指定并模糊测试的语法、C 翻译移至外部包、新的 @backingInt 和 @fromBackingInt、@spirv 类型、删除了数组乘法语法等。标准库更新引入了安全分配器、重构的栈回退分配器以及改进的格式化功能。

构建系统现在将制造者进程与配置者进程分离,并采用了重构的缓存系统和配置缓存中毒机制。包管理增加了覆盖包路径的能力,编译器引入了增量编译、SPIR-V 后端,以及改进的 aarch64、loongarch 和 WebAssembly 后端。

工具链更新包括 LLVM 22、musl 1.2.5、glibc 2.44、Linux 7.2 头文件、macOS 27.0 头文件等。值得注意的修复解决了影响 aarch64-windows 二进制文件的 LLVM 错误,并为 32 位 ARM 的崩溃添加了堆栈跟踪。此版本还为 zig fmt 引入了 --complexity 标志,并将 Windows 资源编译移至外部包。

Zig 0.17.0 最重要的变化是什么?

最重要的变化是重构的构建系统,引入了构建服务器协议,以及 ELF 链接器的增强,使得 x86_64-linux 上的所有用户都能进行增量编译。

简体中文 version →