Вышла новая версия системного языка программирования Nim. В ней имеется частичная несовместимость с версией 1.0, например, из-за более строгого преобразования типов. Но на этот случай есть флаг —useVersion:1.0.
Главное нововведение — новый сборщик мусора, включаемый опцией —gc:arc. Автор языка Andreas Rumpf собрается написать подробную статью о преимуществах ARC, а пока предлагает ознакомиться с его выступлением на FOSDEM, где показаны результаты бенчмарков.
- Компилятор теперь поддерживает опцию —asm для более удобного изучения производимого ассемблерного кода.
- align pragma может быть использована для переменных и полей объекта, это похоже на alignas в C/C++.
- =sink оператор теперь опционален. Компилятор теперь может использовать комбинацию =destroy и copyMem для эффективного перемещения объектов.
- Преобразования в unsigned integers не проверяются в рантайме. Подробности в https://github.com/nim-lang/RFCs/issues/175
- Новый синтаксис для lvalue: var b {.byaddr.} = expr, подключаемый через import std/decls
- Компилятор поддерживает новый ключ —panics:on, который превращает рантаймовые ошибки такие как IndexError или OverflowError в фатальные ошибки, которые не могут быть пойманы через try. Это может улучшить эффективность рантайма и размер программы.
- Генерируемый JS-код использует только пробелы вместо мешанины из пробелов и табов.
- В компилятор добавлена поддержка .localPassc pragma, с помощью которой можно обработать специальные опции C(++) бэкенда для C(++) файла, который генерируется из текущего модуля Nim.
- Nimpretty теперь не принимает отрицательный аргумент для настройки отступов, так как это ломало файлы.
- Добавлены новые макросы (collect, dup, capture), подключаемые через import sugar.
Anplis de sa, yo te ajoute anpil chanjman nan bibliyotèk estanda a ak anpil koreksyon ensèk.
Sous: linux.org.ru