The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск языка программирования Nim 2.2.8

23.02.2026 22:26 (MSK)

Представлен релиз языка системного программирования Nim 2.2.8. Nim – статически типизированный компилируемый язык программирования с синтаксисом, вдохновлённым Python, и возможностями метапрограммирования на уровне Lisp. Язык компилируется в C, C++ и JavaScript, обеспечивая производительность на уровне C при выразительности высокоуровневых языков. Код проекта поставляется под лицензией MIT.

Возможности Nim включают систему макросов, работающих на AST во время компиляции, поддержку обобщённого программирования с концептами, множественную диспетчеризацию (multiple dispatch), детерминированное управление памятью с поддержкой нескольких стратегий (ARC/ORC, refc, маркировка-и-подметание), встроенную поддержку async/await для асинхронного программирования и FFI для простой интеграции с C/C++/JavaScript. Nim позиционируется как системный язык, подходящий для разработки от встраиваемых систем до веб-серверов, с акцентом на эффективность, безопасность памяти и удобство разработки.

Выпуск 2.2.8 состоялся спустя четыре месяца после версии 2.2.6 и включает 89 коммитов с исправлениями ошибок и улучшениями. Главным улучшением релиза названо значительное повышение стабильности стандартного аллокатора памяти при активном использовании многопоточности. По словам разработчиков, необходимость в обходном решении "-d:useMalloc" для многопоточного кода осталась в прошлом. Пользователей просят оставлять обратную связь.

Среди исправленных ошибок:

  • SIGBUS при итерации по константной таблице из-за преждевременного уничтожения временных объектов;
  • SIGSEGV с замыкающими итераторами;
  • некорректная генерация C-кода при инициализации .global внутри метода;
  • ошибка в обработке finally в замыкающем итераторе при наличии try..except;
  • некорректное name mangling в стиле C++ при использовании --debuginfo;
  • медленная работа setLen при уменьшении размера последовательности из-за излишней зачистки памяти;
  • отсутствие setLenUninit для режима "--mm:refc";
  • зависание обработки term rewriting на больших файлах;
  • SIGSEGV при использовании distinct-типов с назначением в heap-объекты в режиме refc;
  • некорректный доступ к m_type в хуках для обобщённых distinct-типов под ARC/ORC/ATOMICARC;
  • сбой компилятора при передаче кортежа с "items" из концепта;
  • рекурсивные концепты вызывали segfault компилятора;
  • некорректная генерация HTTPS-запросов через HTTP-прокси в httpclient;
  • неопределённое поведение при операции shl;
  • усечение длинных целочисленных литералов без предупреждения;
  • сбои компилятора при ряде некорректных обобщённых инстанциаций;
  • добавлен режим --styleCheck:warn.


  1. Главная ссылка к новости (https://nim-lang.org/blog/2026...)
  2. OpenNews: В языке Nim представлен YRC - потокобезопасный сборщик циклических ссылок
  3. OpenNews: Выпуск языка программирования Nim 2.2.6
  4. OpenNews: Представлены принципы дизайна компилятора Nimony для будущего Nim 3.0
  5. OpenNews: Для Nim 3.0 развивается новый компиляторный бэкенд на основе формата NIF
  6. OpenNews: Релиз языка программирования Nim 2.0
Автор новости: User097
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64858-nim
Ключевые слова: nim
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.7, 12yoexpert (ok), 23:09, 23/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > инстанциаций

    афордабл хоть?

     
     
  • 2.16, Shellpeck (?), 09:34, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    формидабл
     
     
  • 3.20, Аноним (20), 13:07, 24/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.10, вдцлсоцжтчфлыь (?), 00:48, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Кто-то: если ваш ним так хорош, что все игры на графах к нему сводятся по теореме Шпрага-Гранди, то почему ещё не выпустили ним 2?

    тем временем ним 2:

     
  • 1.11, Аноним (11), 02:51, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    С таким списком багфиксов использовать это в проде будет только хеловротщик
     
     
  • 2.14, Аноним (14), 07:49, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если действовать с такой же настойчивостью, как в отношении офтопика, баги не помешают использованию сабжа (у офтопика багов на порядок больше, но он уже в ядре).
     

  • 1.12, Аноним (12), 07:02, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Зачем он нужен? Какие проблемы он решает?
     
     
  • 2.13, Аноним (14), 07:47, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Исчерпывающие ответы на Ваши вопросы содержатся в следующем фрагменте новости:
    > позиционируется как системный язык, подходящий для разработки от встраиваемых систем до веб-серверов, с акцентом на эффективность, безопасность памяти и удобство разработки.
     
     
  • 3.15, нах.. (?), 09:09, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Это не ответ, это описание. Какие проблемы решает - это пример решения проблем, очевидно.
     
     
  • 4.19, нимнимним (?), 11:19, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    - какие проблемы решаешь на работе?
    - могу копать, могу картошку сажать, могу уравнения решать, могу людьми управлять
    - хорошо, а решаешь какие?
    - да двор подметаю
     
     
  • 5.21, Аноним (20), 13:09, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Одно дело мести двор метлой, другой мести суперподметалкой Nim 2.2.8 всё равно мы пить не бросим.
     
  • 3.26, Аноним (26), 15:41, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >позиционируется как системный язык

    С каких пор это стало важным?
    >с акцентом на эффективность, безопасность памяти и удобство разработки

    Под это определение условный руби подходит гораздо больше, чем nim. Там хотя-бы не нужно выбирать из сортов счётчиков ссылок.

     
  • 2.25, Аноним (26), 15:33, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Затрудняет распространение хороших языков. Здесь и управляющие отступы с питоноподобным синтаксисом, и империативный подход с разделением на инструкции и выражения, одновременно и сишная модель управления памятью с утечками и порчей памяти, и в то же время некая плюсовая, с несколькими видами счётчиков ссылок, требующая подгонки кода под каждый конкретный случай, и отсутствие компиляции, а только трансляция в си, что затрудняет отладку, и куча эпических ошибок в реализации практически всего, невыразительная система типов на уровне жабы.
     
  • 2.29, Chester loved cheetos (?), 15:48, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Людям свойственно повторять чужие ошибки. Так они получают уникальный опыт разработки, дав сообществу еще немного пищи для бытия. К сожалению, внимание подобным проектам чаще уделяют люди с избытком свободного времени. От незанятых в экономике, до лентяев. По этой причине в серьезный продакшн такие проекты не попадут никогда.
     

  • 1.17, cheburnator9000 (ok), 10:08, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    В общем пока этот "язык" является языком для транспайлера для GCC он так и будет оставаться нишей для извращенцев и все.
     
     
  • 2.18, Axonic (ok), 10:52, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И в результате написание кода программы превращается в удовольствие, а скомпилированные бинарники быстрые. Что тебя беспокоит?
     
     
  • 3.28, Аноним (26), 15:47, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >написание кода программы превращается в удовольствие

    Это вообще никак не влияет.
    >а скомпилированные бинарники быстрые

    Это далеко не лучший вариант достижения данной цели.
    >Что тебя беспокоит?

    Семантика си кода накладывает определённые ограничения на оптимизацию. Но даже это не важно, так как в превую очередь это затягивает время компиляции, плюс делает встроенную отладочную информацию в бинарнике вредной, так как место занимает, а толку от неё нет.

     
  • 3.41, menan (?), 23:43, 24/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.24, zionist (ok), 14:40, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Язык компилируется в C, C++ и JavaScript

    Странно, что не поддерживается IR LLVM или любой другой бэкэнд.

     
  • 1.30, Аноним (26), 15:53, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Nim позиционируется как системный язык, подходящий для разработки от встраиваемых систем до веб-серверов

    Шли долгие годы, люди старательно писали дырки на си, и тут вдруг вышел голанг, и оказалось, что сборщик мусора - это не так уж и плохо.

     
     
  • 2.33, Аноним (33), 18:35, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >вышел голанг, и оказалось, что сборщик мусора - это не так уж и плохо.

    После электрона действительно игого с жабой не кажутся злом, но это только кажется.

     
     
  • 3.38, Аноним (38), 21:04, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ну в сравнении с жс они действительно не зло.
     

  • 1.31, Axonic (ok), 17:36, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Глубина аргументации со стороны скептиков и их настойчивость намекают, что  язык, по меньшей мере, заслуживает внимания.

    — Он быстрый.
    — И что? Всё равно плохой вариант!
    — На нём приятно создавать приложения.
    — Это ни на что не влияет.
    — Он генерирует си-код, чтобы хорошо отлаженные компиляторы собирали быстрые бинарники.
    — Нет, семантика си-кода омерзительна!
    — Но там нет семантики Си. Больше Modula, Oberon, Lisp и Python.
    — Её не может не быть в таком языке. Язык плохой!
    — Почему?
    — Не используется в продакшене.
    — А как же Ethereum Foundation?
    — Ерунда! Дешёвые поделки!

    Литературно обработал суть обсуждения.


     
     
  • 2.32, Аноним (26), 18:03, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Глубина аргументации со стороны скептиков и их настойчивость намекают, что  язык, по меньшей мере, заслуживает внимания.

    Возьмите дыряшку, к ней скептики относятся гораздо теплее.
    >Он быстрый.

    Другие языки тоже быстрые, тысячи их.
    >На нём приятно создавать приложения.

    На других языках тоже приятно. Посмотрите на популярность того же си. Разве был бы он так популярен, если бы на нём было бы неудобно писать код?
    >Он генерирует си-код, чтобы хорошо отлаженные компиляторы собирали быстрые бинарники.

    Как минимум про llvm ir ыкспертам надо бы знать.
    >Больше Modula, Oberon, Lisp и Python.

    Да, да, конечно. Это такой lisp, без s-выражений. Ыксперты совсем не стесняются выдавать желаемое за действительное.
    >Литературно обработал суть обсуждения.

    Литературно показал свою безграмотность.

     
     
  • 3.40, User097 (ok), 22:38, 24/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.45, Аноним (26), 00:46, 25/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной искуственный бенчмарк, к тому же ещё и не полный В реальности, задача... большой текст свёрнут, показать
     
  • 3.47, Аноним (26), 00:56, 25/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Nim по скорости решения реальных задач входит в первую пятёрку языков:

    И самое главное: Nim настолько быстрый, что у него уже ВТОРАЯ мажорная версия, а в нём продолжают баги выгребать. Программа может быть сколь угодно быстрой, если не важно, какой результат она возвращать.

     
  • 2.35, нах.. (?), 19:07, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Литературно обработал суть обсуждения.

    Так все верно. Вас спрашивают какую задачу решает язык, а вы начинаете про приятность, гладкость и шелковистость.

    Дополню уровень литературности аналогией:
    - в чем крут Вася?
    - он приятный и хороший человек
    - возможно, а в чем он крут?
    - он быстрый
    - у нас весь отдел не медленный
    - он позиционируется как программист
    - ????

     
     
  • 3.43, Alex (??), 00:15, 25/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Вас спрашивают какую задачу решает язык

    Я в Ниме не разбираюсь, но
    вопрос немного странный. Вас интересует какую задачу решает язык? Или программы на этом языке? Или компилятор?

     
  • 3.44, Alex (??), 00:17, 25/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ответьте сами, например, про язык С
     

  • 1.37, Аноним (37), 20:09, 24/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Инструмент этот убьёт одно: сложна система макросов. Макросы в высокоуровневых языках вообще хвост динозавра, который они тянут из ассемблера.
     
     
  • 2.39, Axonic (ok), 21:47, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Макросы в Nim и макросы в ассемблере — это вообще разные миры, даже если слово одно и то же. Они решают разные задачи, работают на разных этапах и обладают разной степенью «магии».

    Макросы Nim работают на уровне абстрактного синтаксического дерева. Макросы ассемблера работают на уровне текстовой подстановки.

     
     
  • 3.46, Аноним (26), 00:52, 25/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем вам вообще макросы? Компилируется слишком быстро? Как вы код с макросами отлаживать собираетесь?
     
  • 2.42, Аноним (42), 23:51, 24/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    какие макросы, если им и без макросов не пользуются
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру