Nim programming language release 1.2.0

Submitted by system programming language release Nim 1.2. The Nim language uses static typing and is built with Pascal, C++, Python, and Lisp in mind. Nim source code is compiled into a C, C++, or JavaScript representation. Subsequently, the resulting C/C++ code is compiled into an executable file using any available compiler (clang, gcc, icc, Visual C++), which allows you to achieve performance close to C, if you do not take into account the cost of running the garbage collector. Similar to Python, Nim uses indentation as block separators. Metaprogramming tools and capabilities for creating domain-specific languages ​​(DSLs) are supported. Project Code supplied under the MIT license.

Notable changes in the new release include:

  • New garbage collector implemented ARC ("-gc:arc").
  • In the module "sugarΒ» new collect, dup and capture macros have been added.
  • Added new macro "with".
  • A large number of new calls have been added to the standard library, including strformat.fmt, strtabs.clear, browsers.osOpen, typetraits.tupleLen, typetraits.genericParams, os.normalizePathEnd, times.fromUnixFloat, os.isRelativeTo, times.isLeapDay, net.getPeerCertificates, jsconsole.trace, jsconsole.table, jsconsole.exception, sequtils.countIt, etc.
  • Added new modules std/stackframes and std/compilesettings.
  • The options "--asm" (to analyze the generated assembler code) and "--panics:on" have been added to the compiler to force exit on IndexError and OverflowError errors, without the possibility of being caught by the "try" handler.
  • Faster detection of possible buffer overflows.

Source: opennet.ru

Add a comment