Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

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

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 1399
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 48 раз
Поблагодарили: 26 раз

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

Сообщение root:# »

Выпуск языка программирования Nim 2.2.8
Представлен релиз языка системного программирования 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.

Источник: https://www.opennet.ru/opennews/art.shtml?num=64858