LINUX.ORG.RU

Nimrod


4

0

Всего сообщений: 1

Nim 0.10.2  — статически типизированный, императивный язык программирования.

Группа Open Source

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

>>> Подробности

 ,

anonymous ()