Что нового будет в 1.6?
Потихоньку начинается подготовка к выпуску 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