Рэліз 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.

Апроч гэтага дададзена мноства змен у стандартную бібліятэку і мноства выпраўленняў багаў.

Крыніца: linux.org.ru

Дадаць каментар