Nim 0.20 релиз биринчи туруктуу 1.0 чыгаруу үчүн талапкер катары каралышы мүмкүн, ал тилдин абалын жасай турган биринчи туруктуу бутагын түзүү үчүн зарыл болгон бир нече өз ара аракеттенүү мүмкүнчүлүгүн бузуучу өзгөртүүлөрдү камтыган. 1.0 версиясы тилдин турукташтырылган бөлүгүндө артка шайкештикти сактоого кепилдик бере турган туруктуу, узак мөөнөттүү колдоо релиз катары бааланат. Өзүнчө, компилятордун эксперименталдык режими да болот, анда артка шайкештикти бузушу мүмкүн болгон жаңы функциялар иштелип чыгат.
Nim 0.20 сунушталган өзгөртүүлөр арасында:
- "Эмес" азыр дайыма унардык оператор болуп саналат, б.а. "assert(not a)" сыяктуу сөз айкаштарына эми уруксат берилбейт жана "assert not a" гана уруксат берилет;
- Компиляция стадиясында бүтүн жана реалдуу сандарды конвертациялоо үчүн катуу текшерүүлөр иштетилген, б.а. "const b = uint16(-1)" туюнтмасы эми катага алып келет, анткени -1 белгиси жок бүтүн сан түрүнө айландыруу мүмкүн эмес;
- Туруктуулар жана цикл өзгөрмөлөрү үчүн кортеждерди таңгактан чыгаруу каралган.
Мисалы, эми сиз 'const (d, e) = (7, "сегиз")" жана "f (x, y) үчүн" сыяктуу тапшырмаларды колдоно аласыз; - Хештердин жана таблицалардын демейки инициализациясы камсыздалган. Мисалы, "var s: HashSet[int]" жарыялагандан кийин, мурда катага алып келген "s.incl(5)" дароо аткара аласыз;
- "Case" операторуна жана массив индексине байланыштуу көйгөйлөр боюнча жакшыртылган ката маалыматы чектен чыккан;
- Итерация учурунда столдун узундугун өзгөртүүгө тыюу салынат.
Source: opennet.ru