Вийшов Nim v2.0
Команда Nim оголосила про реліз Nim 2.0.
Версія передбачає керування пам’яттю ORC за замовчуванням разом із багатьма іншими новими функціями та вдосконаленнями.
Nim — це імперативна мова програмування, розширена системою макросів. Завдяки настроюваному управлінню пам’яттю, мова добре підходить для таких доменів як системи реального часу та системного програмування загалом.
Встановлення Nim 2.0
Нові користувачі
Перевірте, чи менеджер пакетів вашої ОС уже поставляє версію 2.0, або встановіть його, як описано тут.
Існуючі користувачі
Якщо ви встановили попередню версію Nim за допомогою choosenim
, отримати Nim 2.0 так само просто:
$ choosenim update stable
Крім того, ви можете завантажити Nim 2.0 зі збірок.
Коротко про покращення
За замовчуванням задіяний збирач сміття ORC, який використовує той же алгоритм підрахунку посилань на об’єкти, що й збирач сміття ARC, але додатково підтримує обробник циклів, що дозволяє використовувати ARC з реалізацією механізму async у стандартній бібліотеці.
Покращено розпакування кортежів та додано можливість вкладеного розпакування:
proc returnsNestedTuple(): (int, (int, int), int, int) = (4, (5, 7), 2, 3) let (x, (_, y), _, z) = returnsNestedTuple()
Додано можливість низхідного виведення типів:
let foo: seq[(float, byte, cstring)] = @[(1, 2, "abc")]
Додано прагму .forbids для визначення заборонених тегів.
У стандартній бібліотеці модуль «os» розділений на кілька окремих модулів: std/oserrors, std/envvars, std/paths, std/dirs, std/files, std/symlinks, std/appdirs та std/cmdline.
Стабілізовано підтримку навантаження перерахованих типів (enum).
Для об’єктів надано можливість визначення значень полів за замовченням.
type Rational* = object num: int = 0 den: int = 1
Бекенд для генерації коду JavaScript переведений на використання типу BigInt для
Поліпшено переносимість з кодом мовою C++.
2 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів