LINUX.ORG.RU

Zig 0.11

 , ,


1

3

Спустя 8 месяцев и 4457 коммитов от 269 различных участников вышла новая версия Zig.

Zig — это (кросс-)компилятор языков программирования Zig, С++, С, Objective-C, Objective-C++, а также сборочная система и менеджер пакетов для них. Проект разрабатывается под лицензией MIT. Недавно в Zig Core Team вошёл ещё один разработчик на зарплате: Jacob Young.

В новой версии:

  • Появился пакетный менеджер.
  • Улучшена поддержка powerpc, powerpc64le и Plan9.
  • Архитектура i386 переименована в x86.
  • Множественные улучшения и исправления для WebAssembly и появление специфичного для него аллокатора wasm_allocator.
  • Реализация компилятора Zig на Zig (self-hosted) полностью готова, а старый компилятор на C++ «выкинут на орбиту» (требования к ОЗУ для сборки снижены с 11 до 4 ГБ).
  • Обновлены сторонние компоненты:
    • LLVM 16.0.6;
    • musl 1.2.4;
    • wasi-libc 3189cd1ceec8771e8f27faab58ad05d4d6c369ef;
  • Множество изменений в стандартной библиотеке (подробнее).

>>> Подробности

anonymous

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 3)

Ответ на: комментарий от Shushundr

Зиг выглядит проще, приятнее, и слабее раста – возможно за некоторыми исключениями, например обработкой исключений (pun intended, гы-гы). Но я за обоими не следил лет уже 5-10.

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)
Ответ на: комментарий от gns

«Слабее» в отношении языка — это что имеется в виду? Выразительность?

Не только. Речь еще о возможностях компилятора ловить ошибки в стандартных случаях, где отсутствие выразительности это не позволяет.

Язык А (просто тьюринг-полный денег-полный): переведи 100500 рублей с моей карты на карту 1234 5678 9012 3456.

Язык Б (более выразительный): переведи 100500 рублей с моей карты на карту 1234 5678 9012 3456 с сообщением «в долг до завтра».

Язык В (более что?): переведи 100500 рублей с моей карты на карту 1234 5678 9012 3456 с сообщением «в долг до завтра» этому бомжу, он обещает завтра вернуть вдвое больше. Компилятор:

Warning: The recipient is seem to be unable to give the specified amount of money back at the specified time.
Error: build failed due to --treat-warnings-as-errors.
www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)
Ответ на: комментарий от www_linux_org_ru

Не только. Речь еще о возможностях компилятора ловить ошибки в стандартных случаях, где отсутствие выразительности это не позволяет.

Ну это от компилятора зависит больше. Современные компиляторы С/С++ дают более вразумительную диагностику в плане «вы опечатались в символе print, наверное вы имели в виду printf» или при выборе перегруженной функции из стапицот возможных. Правда, простыня диагностики по поводу инстанцирования какой-нибудь объекта класса с темплейтами на три страницы по прежнему удручает :(

И от языка это не зависит. Сравните диагностику GCC и шланга на одном и том же коде :)

gns ★★★★★
()
Ответ на: комментарий от Shushundr

Когда Зиг только создавался, у Rust’а версия только-только вышла версия 1.0, так что этот вопрос тогда не задавался. Это просто к слову. А так нужен, (к примеру) когда вы не особо паритесь с безопасностью (прога и так в песочнице и т.д.) и хочется просто писать код:

https://andrewkelley.me/post/unsafe-zig-safer-than-unsafe-rust.html

https://zackoverflow.dev/writing/unsafe-rust-vs-zig/

Ну и мне нравится, что он намного проще, меньше и всё такое.

https://ziglang.org/ru/learn/why_zig_rust_d_cpp/

BratishkaErik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.