Выйшла новая версія сістэмнай мовы праграмавання 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