Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

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

Релиз языка программирования Nim 2.2.12

09.09.2026 08:25 (MSK)

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

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

Выпуск включает 142 коммита, устраняющих ошибки в компиляторе и стандартной библиотеке. Среди исправлений:

  • Устранены несколько аварийных завершений (SIGSEGV) в ARC/ORC, связанных с повторным использованием шаблонов "{.dirty.}" и выделением памяти под "seq", а также возникавших при обращении к элементам объектов "case" после "move" в связке с "GC_fullCollect()" при использовании "refc".
  • Исправлена ошибка самоприсваивания при копировании памяти (self-append) в runtime "refc", приводившая к аварийному завершению на OpenBSD.
  • Устранена регрессия, из-за которой флаг "--panics:on" пропускал проверку "nimErr_" после вызова замыкания, что приводило к ложному срабатыванию проверки "OverflowDefect".
  • Исправлена некорректная семантика "deepCopy" для не копируемых (non-copyable) типов и двойной вызов деструктора при использовании прагмы "{.cursor.}".
  • Устранена ошибка кодогенерации для C++, приводившая к внутренней ошибке компилятора (ICE) при вызове конструктора "bindSym" внутри макроса.
  • Исправлено некорректное поведение "compareExchange", применявшего недопустимую семантику "release" при неудачном исходе операции.
  • Устранена ошибка в "std/encodings", при которой метод "encodings.convert" незаметно повреждал данные для сохраняющих кодировок типа ISO-2022-JP при увеличении выходного буфера.
  • Исправлена регрессия в JS-бэкенде, из-за которой некорректно генерировался файл "dockhack.js".
  • Устранена ошибка, при которой итерация по элементам массива (в отличие от "seq") всегда выполняла их копирование.
  • Исправлена регрессия производительности при переходе с "refc" на ORC либо при использовании флагов "--mm:refc --exceptions:goto", связанная с избыточными проверками defect-исключений.


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


Обсуждение (1) RSS
  • 1, aname (ok), 09:59, 09/09/2026 [ответить]  
  • +/
    > Язык компилируется в C, C++ и JavaScript

    И это всё- системное программирование

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



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

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