Излезе нова версия на системния език за програмиране Nim. Тя има частична несъвместимост с версия 1.0, например, заради по-строгото преобразуване на типове. Но за този случай има флаг —useVersion:1.0.
Основното нововъведение е новия сборник за сметища, който се активира с опцията —gc:arc. Авторът на езика Андреас Румпф планира да напише подробна статия за предимствата на 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
