Випуск Nim 0.20 можна розглядати як кандидат у релізи першої стабільної версії 1.0, що включає кілька змін, що порушують сумісність, необхідних для формування першої стабільної гілки, яка зафіксує стан мови. Версія 1.0 подається як стабільний випуск із тривалим терміном підтримки для якого буде гарантовано збереження зворотної сумісності у стабілізованій частині мови. Окремо в компіляторі буде доступний експериментальний режим, в якому будуть розвиватися нові можливості, які можуть порушувати зворотну сумісність.
Із запропонованих у Nim 0.20 змін можна виділити:
- "Not" тепер завжди є унарним оператором, тобто. вирази виду «assert(not a)» тепер неприпустимі і допускається лише вказівка «assert not a»;
- Включено жорсткі перевірки перетворення цілих і речових чисел на етапі компіляції, тобто. вираз «const b = uint16(-1)» тепер приведе до висновку помилки, оскільки -1 не може бути перетворений на цілий беззнаковий тип;
- Забезпечено розпакування кортежів для констант та змінних циклів.
Наприклад, зараз можна використовувати присвоєння виду 'const(d, e) = (7, eight)) і for(x, y) in f; - Забезпечено ініціалізацію за умовчанням хешів та таблиць. Наприклад, після оголошення "var s: HashSet [int]" можна відразу виконати "s.incl(5)", що раніше призводило до помилки;
- Поліпшено інформативність помилок для проблем, пов'язаних з оператором «case» та виходом за межі індексу масиву;
- Заборонено зміни довжини таблиці у процесі ітерації.
Джерело: opennet.ru