Nim version 1.2.0

Une nouvelle version du langage de programmation du système Nim a été publiée. Il présente une incompatibilité partielle avec la version 1.0, par exemple en raison d'une conversion de type plus stricte. Mais dans ce cas, il existe un indicateur -useVersion:1.0.

La principale innovation est un nouveau garbage collector, activé par l'option -gc:arc. L'auteur du langage, Andreas Rumpf, va écrire un article détaillé sur les avantages de l'ARC, mais pour l'instant il vous invite à lire avec sa prestation au FOSDEM, qui montre les résultats de référence.

  • Le compilateur prend désormais en charge l'option --asm pour un examen plus pratique du code assembleur produit.
  • Le pragma align peut être utilisé sur des variables d'objet et des champs, ceci est similaire aux alignas en C/C++.
  • L'opérateur =sink est désormais facultatif. Le compilateur peut désormais utiliser une combinaison de =destroy et copyMem pour déplacer efficacement les objets.
  • Les conversions en entiers non signés ne sont pas vérifiées au moment de l'exécution. Détails dans https://github.com/nim-lang/RFCs/issues/175
  • Nouvelle syntaxe pour lvalue : var b {.byaddr.} = expr, connecté via import std/decls
  • Le compilateur prend en charge un nouveau commutateur -panics:on, qui transforme les erreurs d'exécution telles que IndexError ou OverflowError en erreurs fatales qui ne peuvent pas être détectées via try. Cela peut améliorer l’efficacité d’exécution et la taille du programme.
  • Le code JS généré utilise uniquement des espaces au lieu d'un méli-mélo d'espaces et de tabulations.
  • Le compilateur a ajouté la prise en charge du pragma .localPassc, qui peut être utilisé pour gérer les options spéciales du backend C(++) pour un fichier C(++) généré à partir du module Nim actuel.
  • Nimpretty n'accepte plus un argument négatif pour définir l'indentation, car cela cassait les fichiers.
  • De nouvelles macros ont été ajoutées (collecter, duper, capturer), connectées via l'importation de sucre.

De plus, de nombreuses modifications ont été ajoutées à la bibliothèque standard et de nombreuses corrections de bugs.

Source: linux.org.ru

Ajouter un commentaire