Nim 0.10.2

Nim (ранее Nimrod) — статически типизированный, императивный язык программирования. В этом релизе произошла смена названия языка с Nimrod на Nim. Эта версия ломает обратную совместимость с прошлыми версиями, для поиска и обновления проекта предоставлена специальная утилита — nimfix Одна из целей Nim это реализация эфективного компилятора, на последних сравнения скорости, можно увидеть, что код на Nim такой же быстрый как код на C или C++. Последние введения, как asyncdispatch модуль, позволяет написать эфективные веб-приложения используя неблокирующий код. Также Nim имеет встроенные пул тредов для легковесных потоков с использованием `spawn`. Удаленые непопулярные префиксы для типов — «T» и «P». Обновлены форум, сайт, и генератор документации. Важные изменения, которые ломают обратную совместимость

комментарии больше не часть AST. рекурсивные кортежи запрещены, вместо этого предлогается использовать object новые ключевые слова — defer, func using нужно включать явно с помощью прагмы {.experimental.} ключевые слова except, finally объявлены устаревшими. Вместо них нужно использовать defer и try. поля в кортежах сейчас игнорируются для сравнения. Некоторые изменения в языке

новая конкрутентая модель (lock секции, lock уровни и guards поля) parallel оператор deepCopy встроенный procCall может использоваться для вызова методов родителя прагма {.experimental.} которая добавляет нововведения для модуля, или можно включить это глобально с передачей аргумента --experimental В компиляторе

поддержка смешанного Objective C / C++ / C генерации, модули которые используют importCpp или importObjc компилируются в Objective C или C++, остальные модули компилируются в C. parallel оператор, для fork/join модели выполнения lock и guard прагмы для безопасной конкурентной работы больше методов, которые доступны во время компиляции

В библиотеках

fenv модуль для контроля выполения операций с чисел с плавающей точкой и контроля за исполючениями — переполнение, деление на ноль asyncnet добавлена поддержка SSL добавлена osproc.kill  nim, nimrod

©  Linux.org.ru