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 во внешний пакет.
Источник: Hacker News · Сводку подготовил HeadlinesBriefing