Versione di Nim 1.2.0

Вышла новая версия системного языка программирования 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.

Inoltre, assai cambiamenti sò stati aghjunti à a biblioteca standard è parechje correzioni di bug.

Source: linux.org.ru

Add a comment