Sortie du langage de programmation Nim 1.2.0

Introduit version du langage de programmation système Nim 1.2. Le langage Nim utilise le typage statique et a été créé en tenant compte de Pascal, C++, Python et Lisp. Le code source de Nim est compilé dans une représentation C, C++ ou JavaScript. Par la suite, le code C/C++ résultant est compilé dans un fichier exécutable à l'aide de n'importe quel compilateur disponible (clang, gcc, icc, Visual C++), ce qui permet d'atteindre des performances proches du C, si l'on ne prend pas en compte les coûts d'exécution. le éboueur. Semblable à Python, Nim utilise l'indentation comme délimiteurs de blocs. Les outils de métaprogrammation et les capacités de création de langages spécifiques à un domaine (DSL) sont pris en charge. Code de projet fourni sous licence MIT.

Les changements notables dans la nouvelle version incluent :

  • Implémentation d'un nouveau garbage collector ARC (« -gc:arc »).
  • Dans le module "sucre"Ajout de nouvelles macros de collecte, de duplication et de capture.
  • Ajout d'une nouvelle macro "avec".
  • Une grande partie des nouveaux appels ont été ajoutés à la bibliothèque standard, notamment 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, sequutils.countIt, etc.
  • Ajout de nouveaux modules std/stackframes et std/compilesettings.
  • Les options "-asm" (pour l'analyse du code assembleur généré) et "-panics:on" pour la sortie forcée sur les erreurs IndexError et OverflowError ont été ajoutées au compilateur, sans possibilité d'être intercepté par le gestionnaire "try".
  • Détection améliorée d’éventuels débordements de tampon.

Source: opennet.ru

Ajouter un commentaire