Une nouvelle version du langage de programmation Nim est sortie. Elle prĂ©sente une compatibilitĂ© partielle avec la version 1.0, en raison, par exemple, d'une conversion de types plus stricte. Pour ce cas, un drapeau âuseVersion:1.0 est disponible.
La principale nouveautĂ© est un nouveau ramasse-miettes, activĂ© par l'option âgc:arc. L'auteur du langage, Andreas Rumpf, prĂ©voit d'Ă©crire un article dĂ©taillĂ© sur les avantages d'ARC, en attendant, il propose de se familiariser avec sa prĂ©sentation Ă FOSDEM, oĂč les rĂ©sultats des benchmarks sont prĂ©sentĂ©s.
- Le compilateur prend dĂ©sormais en charge l'option âasm pour une Ă©tude plus facile du code assembleur gĂ©nĂ©rĂ©.
- L'pragma align peut ĂȘtre utilisĂ© pour les variables et les champs d'objet, cela ressemble Ă alignas en C/C++.
- =sink est maintenant un opérateur optionnel. Le compilateur peut désormais utiliser une combinaison de =destroy et copyMem pour un déplacement efficace des objets.
- Les conversions vers des entiers non signés ne sont pas vérifiées au runtime. Plus de détails dans https://github.com/nim-lang/RFCs/issues/175
- Une nouvelle syntaxe pour lvalue : var b {.byaddr.} = expr, Ă activer via import std/decls.
- Le compilateur prend en charge une nouvelle clĂ© âpanics:on, qui transforme les erreurs d'exĂ©cution telles que IndexError ou OverflowError en erreurs fatales qui ne peuvent pas ĂȘtre attrapĂ©es via try. Cela peut amĂ©liorer l'efficacitĂ© du runtime et la taille du programme.
- Le code JS généré utilise uniquement des espaces au lieu d'un mélange d'espaces et de tabulations.
- Le compilateur a ajouté le support de l'pragma .localPassc, qui permet de traiter des options spéciales du backend C(++) pour le fichier C(++) généré à partir du module Nim actuel.
- Nimpretty n'accepte maintenant plus d'argument négatif pour configurer les indentations, car cela cassait les fichiers.
- De nouveaux macros (collect, dup, capture) ont été ajoutés, à activer via import sugar.
En outre, de nombreux changements ont été apportés à la bibliothÚque standard et de nombreux bugs ont été corrigés.
Source : linux.org.ru
