Rilaxx tal-lingwa ta' programmar Nim 1.2.0

Introdott rilaxx tal-lingwa tal-ipprogrammar tas-sistema Nim 1.2. Il-lingwa Nim tuża ittajpjar statiku u nħolqot b'għajnejha fuq Pascal, C++, Python u Lisp. Il-kodiċi tas-sors Nim huwa miġbur f'rappreżentazzjoni C, C++, jew JavaScript. Sussegwentement, il-kodiċi C/C++ li jirriżulta jiġi kkompilat f'fajl eżekutibbli bl-użu ta' kwalunkwe kompilatur disponibbli (clang, gcc, icc, Visual C++), li jippermettilek tikseb prestazzjoni qrib C, jekk ma tqisx l-ispejjeż tat-tħaddim. il-kollettur taż-żibel. Simili għal Python, Nim juża l-indentazzjoni bħala delimitaturi tal-blokki. Għodod u kapaċitajiet ta' metaprogrammazzjoni għall-ħolqien ta' lingwi speċifiċi għad-dominju (DSLs) huma appoġġjati. Kodiċi tal-proġett fornuti taħt il-liċenzja MIT.

Bidliet notevoli fir-rilaxx il-ġdid jinkludu:

  • Implimenta kollettur taż-żibel ġdid ARC (“-gc:arc”).
  • Fil-modulu "zokkor"Macros ġodda miżjuda jiġbru, dup u jaqbdu.
  • Miżjud makro ġdid "bil".
  • Porzjon kbir ta' sejħiet ġodda ġew miżjuda mal-librerija standard, inklużi 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, eċċ.
  • Miżjud moduli ġodda std/stackframes u std/compilesettings.
  • Għażliet “—asm” (għall-analiżi tal-kodiċi tal-assemblaġġ iġġenerat) u “—panics:on” għal ħruġ sfurzat fuq żbalji IndexError u OverflowError ġew miżjuda mal-kompilatur, mingħajr il-possibbiltà li jiġu interċettati mill-handler “pprova”.
  • Sejbien mtejba ta' buffer overflows possibbli.

Sors: opennet.ru

Żid kumment