|
После пяти месяцев разработки опубликован выпуск языка программирования Zig 0.17.0, развиваемого в качестве современной замены языка Си. В Zig пытаются сохранить простоту, гибкость использования и предсказуемость кодогенерации языка Си, при этом добавляя новшества для более эргономичной и безопасной разработки. Zig предоставляет возможности метапрограммирования (выполнения кода во время компиляции) и современную систему типов, созданную с оглядкой на обеспечение безопасности и производительности (опциональные типы вместо нулевых указателей, выравнивание по адресу как часть типа, целочисленные типы с размерностью от 0 до 65535 бит, кортежи и т.д.). Код инструментария распространяется под лицензией MIT.
В подготовке релиза приняли участие 206 разработчиков, которые внесли 925 коммитов. Основные изменения:
- Переработана сборочная система (Build System), в которой процесс конфигурации отделён от процесса сборки. Переработана система кэширования.
- Добавлен протокол Build Server Protocol, позволяющий клиентам отслеживать процесс сборки и управлять им.
- Существенно улучшен собственный ELF-компоновщик.
- В компиляторе реализована возможность использования инкрементальной компиляции в Linux-окружениях на системах с архитектурой x86_64.
- Обновлены версии LLVM 22, musl 1.2.5, glibc 2.44, заголовочные файлы ядра Linux 7.2.
- Расширена поддержка целевых платформ loongarch32 и SPARC64. добавлена поддержка трассировки стека на системах ARM и SPARC. Удалена поддержка некоторых сборочных целей для архитектуры PowerPC с glibc.
- В языке предложена формальная спецификация грамматики, добавлены новые встроенные функции (@backingInt, @fromBackingInt, @divCeil, @SpirvType и др.), удалены устаревшие конструкции ("a ** b", "void{}", "errdefer |err|", "i0").
- Инструменты трансляции C-кода вынесены в отдельный пакет translate-c.
- В стандартной библиотеке предложена новая система выделения памяти SafeAllocator, пригодная для использования в многопоточном коде. Переработан модуль std.zon.parse.
|