Реліз мови програмування Nim 1.2.0

представлений реліз мови системного програмування Nim 1.2. Мова Nim використовує статичну типізацію та створена з огляду на Pascal, C++, Python та Lisp. Вихідний код на мові Nim компілюється на представлення на C, C++ або JavaScript. Надалі отриманий C/C++ код компілюється виконуваний файл за допомогою будь-якого доступного компілятора (clang, gcc, icc, Visual C++), що дозволяє досягти продуктивності близької до Сі, якщо не враховувати витрати на виконання збирача сміття. За аналогією з Python в Nim як роздільники блоків застосовуються відступи. Підтримуються засоби метапрограмування та можливості для створення предметно-орієнтованих мов (DSL). Код проекту поставляється під ліцензією MIT.

Серед помітних змін у новому випуску:

  • Реалізовано новий збирач сміття ARC («-gc: arc»).
  • У модуль «цукор» додані нові макроси collect, dup та capture.
  • Доданий новий макрос "with".
  • Внесено велику порцію нових викликів до стандартної бібліотеки, включаючи strformat.fmt, strtabs.clear, browsers.osOpen, typetraits.tupleLen, typetraits.genericParams, os.normalizePathEnd, times.fromUnixFloat, os.isRelativeTo, jsconsole.trace, jsconsole.table, jsconsole.exception, sequtils.countIt і т.д.
  • Додані нові модулі std/stackframes та std/compilesettings.
  • У компілятор додані опції «-asm» (для аналізу генерованого асемблерного коду) і «panics:on» для примусового виходу при помилках IndexError і OverflowError, без можливості перехоплення обробником «try».
  • Прискорено визначення можливих переповнень буферів.

Джерело: opennet.ru