Вийшов 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 для 64-розрядних цілих типів (int64 та uint64).

Поліпшено переносимість з кодом мовою C++.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Мав досвід комерційної розробки на nim. Якщо цікаво, запитуйте в коментарях.

Я тут посмотрел, на гитхабе лежит всего 2,5k репозиториев на Nim. В то время, как на Go — 372k, на C++ — 1.5M, на Python — 3M.

Підписатись на коментарі