XRUST.ru » Новости » Zig 0.16: колор функций отменяется, а до 1.0 — принципиально нет
Новости / Программирование

Zig 0.16: колор функций отменяется, а до 1.0 — принципиально нет

23 июля 2026, 06:20 735 0 4

Zig 0.16 переписывает контракт между кодом и вводом-выводом, ускоряет инкрементальную сборку за счёт смены модели зависимостей компилятора — и в очередной раз демонстрирует, что версия 1.0 для команды не цель квартала, а вопрос принципа.

std.Io: async без «цвета функций»

Главное изменение релиза — std.Io как интерфейс, а не встроенный в язык примитив, подчеркивает xrust. Раньше в большинстве языков с async/await действует деление функций на «цветные»: обычная функция не может напрямую вызвать асинхронную, и наоборот, без обвязки. Zig решает это иначе: I/O передаётся как обычный параметр, наравне с аллокатором.

zig

pub fn main(init: std.process.Init) !void {

const gpa = init.gpa;

const io = init.io;

std.log.info("{d} env vars", .{init.environ_map.count()});

}

Это и есть «Juicy Main» — dependency injection для точки входа программы: один параметр process.Init даёт доступ к general-purpose аллокатору, реализации Io, карте переменных окружения и CLI-аргументам без ручной инициализации каждого куска рантайма отдельно.

Практическое следствие: один и тот же код с std.Io может исполняться и на потоковом бэкенде, и на событийном — io_uring на Linux, Grand Central Dispatch на macOS — без переписывания сигнатур функций. Выбор реализации остаётся на стороне вызывающего кода, а не диктуется языком через async/await как отдельную синтаксическую сущность.

Type resolution: из цикла в DAG

В марте Мэттью Лагг влил правку на 30 000 строк, переработавшую внутренний граф зависимостей компилятора — из цикличной структуры в направленный ациклический граф (DAG). До этого граф допускал циклы, что усложняло анализ и тормозило инкрементальные пересборки. DAG даёт две вещи: компилятору проще определить, что действительно нужно пересчитать при правке файла, и при обнаружении циклической зависимости в пользовательском коде сообщение об ошибке становится читаемым, а не абстрактной трассировкой через десяток промежуточных узлов.

Отдельно упрощена работа с зависимостями пакетов — они переехали в локальную директорию проекта вместо глобального кеша, что снижает количество сюрпризов при разворачивании чужого проекта на новой машине.

Что изменилось в поддержке платформ

  • Нативное CI-тестирование расширено на aarch64, loongarch64, powerpc64le, s390x;
  • добавлена кросс-компиляция под aarch64-maccatalyst и x86_64-maccatalyst;
  • появилась начальная поддержка loongarch32-linux;
  • исправлены давние баги стандартной библиотеки на weakly-ordered архитектурах и платформах с нестандартным размером страницы — заметно выросла надёжность на AArch64 (особенно без LSE), LoongArch и Power ISA;
  • big-endian ARM теперь корректно эмитит объектные файлы формата BE8 вместо устаревшего BE32 при таргете ARMv6+;
  • трассировка стека при падениях теперь работает почти на всех основных таргетах.

Требование для post-1.0 релизов зафиксировано прямо в release notes: у Tier 1 платформ должно быть ноль отключённых тестов. Пока это не выполнено — и, соответственно, не выполнено условие для 1.0.

Почему не 1.0

Позиция команды подробно разобрана в июньском материале JetBrains «Why Zig Isn't 1.0 (Yet)»: вопрос, который задают перед каждым потенциально необратимым решением — о чём команда пожалеет, если зафиксирует это в стандарте прямо сейчас. Эндрю Келли признаёт: ярлык 1.0 ускорил бы корпоративное усыновление языка, но сознательно не форсирует релиз. Zig существует на пожертвования через некоммерческий фонд, а не венчурные деньги — это даёт свободу, недоступную VC-backed конкурентам, которым нужно предъявлять инвесторам метрики роста здесь и сейчас.

Аналитика

Для практикующих разработчиков ключевой сигнал релиза — не conкретные фичи, а сам подход к async. Явный Io-параметр снимает классическую проблему функционального цвета, знакомую всем, кто писал на языках с обязательным async/await: невозможность красиво смешать синхронный и асинхронный код в одной кодовой базе. Решение Zig концептуально похоже на то, как язык уже поступил с управлением памятью — сделав аллокатор явным параметром вместо скрытого рантайма. Для системного программирования, embedded и высоконагруженных сервисов это осмысленный компромисс: чуть больше явного кода в сигнатурах в обмен на предсказуемость и отсутствие скрытых аллокаций.

Постоянный отказ от версии 1.0 при этом не мешает продакшн-использованию — сообщество на Хабре в отдельном хабе Zig регулярно обсуждает боевые кейсы, а собственный бэкенд компилятора (отказ от LLVM для части таргетов) снижает внешние зависимости языка. Rust шёл к 1.0 около девяти лет — на этом фоне текущий десятилетний путь Zig без релиза не выглядит аномалией, скорее продолжает традицию системных языков не спешить с фиксацией стандарта.

Другие новости

Пока Zig демонстративно тормозит, Mojo идёт в противоположном направлении: в начале мая вышла первая бета-версия Mojo 1.0, которую команда проекта оценивает как почти готовую к массовому использованию, а финальный стабильный релиз обещан уже этой осенью.


Источники:

Xrust: Zig 0.16: колор функций отменяется, а до 1.0 — принципиально нет



Поделится
4 0

Комментарии


Nickelback объявили новый альбом Everything Under the Sun: дата релиза и первый сингл
Канадская рок‑группа Nickelback представила свой 11‑й студийный альбом Everything Under the Sun, который выйдет 30 октября. Вместе с анонсом музыканты выпустили заглавный сингл «Rattle the Cage» — энергичный рок‑трек, отражающий концертную мощь коллектива. Группа Nickelback официально объявила о скором выходе нового альбома, сообщает xrust. Во вторник, 14 июля, канадские музыканты сообщили, что их 11‑й студийный релиз под названием Everything Under the Sun выйдет 30 октября на лейбле Virgin Music Group. Одновременно с анонсом группа представила заглавный сингл «Rattle the Cage», который задаёт тон будущей пластинке. Что говорит группа Фронтмен Чад Крёгер отметил, что новый альбом отражает весь спектр звучания Nickelback: «На этом альбоме представлены все грани нашей группы. Здесь есть песни, которые звучат так же мощно, как всё, что мы когда-либо делали, песни, которые не боятся экспериментировать, и песни, которые напоминают нам, почему мы так долго занимаемся этим вместе». По
1 197 5