Потихоньку начинается подготовка к выпуску 1.6 (все важные баги вроде как пофикшены).
В 1.6 ожидается много хороших изменений, некоторые из них:
- Сборщик мусора ORC быстрее на 10% во многих случаях (для информации об ARC и ORC можно прочитать Introduction to ARC/ORC in Nim и Introducing ORC — Vorsprung durch Algorithmen)
- В
strformat теперь можно использовать не только строковые литералы, но и константные строки. Так же добавлена поддержка всех видов выражений (if, case, when, block и т.д) — RFC#366.- Теперь, если в процедуре с прагмой
strictFuncs (или функции — func) есть код, который запрещён strictFuncs, то ошибка будет намного более информативна, чем раньше.- Кастомные числовые литералы - очень полезно для библиотек, предоставляющих arbitrary-precision числа, т.е. можно будет писать let a = 123456'bignum если bignum реализован в сторонней библиотеке. Это реализация RFC#216 и RFC#228.
- Добавлен новый синтаксис для импортирования всех символов (даже приватных) из модуля —
import foo {.all.}. Это упрощает написание тестов, т.к. теперь можно напрямую тестировать приватные функции модулей. Реализация RFC#299.- В дополнение к предыдущему пункту — в стандартную библиотеку добавлен новый модуль std/importutils , который даёт доступ к приватным полям объектов.
- Теперь небольшое количество символов Unicode можно использовать для операторов, а именно
∙ ∘ × ★ ⊗ ⊘ ⊙ ⊛ ⊠ ⊡ ∩ ∧ ⊓ ± ⊕ ⊖ ⊞ ⊟ ∪ ∨ ⊔. Это реализация RFC#388- Для флага
--styleCheck добавлена новая опция — --styleCheck:usages . С этой опцией компилятор сможет выводить или подсказку (--styleCheck:hint) или ошибку (--styleCheck:error), если какой-либо символ (переменная, процедура, и т.д) использует отличное от оригинала написание идентификатора.Полный список изменений можно просмотреть в репозитории.
P.S.: Это репост моей статьи из https://vk.com/@nim_lang-chto-novogo-budet-v-16