# Краткий пересказ изменений в версии Zig 0.15.1

В 
Опубликовано 2025-09-12

Версия Zig 0.15.1 включает значительные улучшения производительности компилятора, экспериментальные возможности инкрементальной компиляции и ряд значительных изменений в стандартной библиотеке и интерфейсах ввода-вывода. Основные изменения включают:

# Улучшения производительности:

  • Самостоятельный бекенд x86: По умолчанию используется самоподдерживаемый x86 бекенд, обеспечивающий значительное ускорение сборки в режиме отладки (примерно в 5 раз быстрее, чем LLVM).
  • Параллелизация этапов компиляции: теперь этапы анализа семантики, генерации кода и линковки выполняются параллельно, значительно сокращая общее время компиляции.

# Изменения в стандартной библиотеке:

  • Устаревшие структуры данных удалены, включая многие реализации кольцевых буферов, заменённые новыми стандартизированными интерфейсами ввода-вывода (std.Io.Reader, std.Io.Writer).
  • Стандартная библиотека больше не зависит от низкоуровневых сетевых функций (std.net), улучшая модульность приложений.
  • Переработаны API серверов и клиентов HTTP, ставшие менее ограниченными и зависящими исключительно от стандартных потоков ввода-вывода.
  • Структуры std.ArrayList и std.ArrayListAligned устарели и будут удалены.

# Инкрементальная компиляция:

  • Продолжается работа над поддержкой инкрементальных сборок, позволяющих быстро обновлять код путём перекомпиляции лишь изменённых частей проекта.

# Другие важные нововведения:

  • Добавлена поддержка динамического наблюдения файлов на macOS через встроенный файловый монитор.
  • Введён новый веб-интерфейс для визуализации шагов сборки и диагностики ошибок («time reports»).
  • Обновлены механизмы обработки ошибок форматов строк и выравнивания Unicode.
  • Устранено использование оператора usingnamespace, улучшив читаемость и стабильность программы.
  • Повышена производительность цикла for и оптимизирован вывод сообщений в консоль.

# Исправления и улучшения стабильности:

  • Закрыто большое количество багов, среди которых исправление некорректных переходов между файлами, проблем с потоками ввода-вывода и улучшенная обработка неопределённого поведения (UBSan).

Эти изменения направлены на улучшение производительности, упрощение разработки и повышение качества итоговых проектов на Zig. Более подробное описание в официальном Release Notes