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