Nim 1.2.0-Veröffentlichung

Eine neue Version der Systemprogrammiersprache Nim wurde veröffentlicht. Es besteht teilweise Inkompatibilität mit Version 1.0, beispielsweise aufgrund einer strengeren Typkonvertierung. Aber in diesem Fall gibt es ein Flag -useVersion:1.0.

Die wichtigste Neuerung ist ein neuer Garbage Collector, der durch die Option -gc:arc aktiviert wird. Der Autor der Sprache, Andreas Rumpf, wird einen ausführlichen Artikel über die Vorteile von ARC schreiben, lädt Sie aber vorerst zum Lesen ein mit seinem Auftritt bei FOSDEM, das die Benchmark-Ergebnisse zeigt.

  • Der Compiler unterstützt jetzt die Option --asm für eine bequemere Untersuchung des erzeugten Assemblercodes.
  • Das Align-Pragma kann für Objektvariablen und Felder verwendet werden, dies ähnelt Alignas in C/C++.
  • Der =sink-Operator ist jetzt optional. Der Compiler kann jetzt eine Kombination aus =destroy und copyMem verwenden, um Objekte effizient zu verschieben.
  • Konvertierungen in vorzeichenlose Ganzzahlen werden zur Laufzeit nicht überprüft. Details in https://github.com/nim-lang/RFCs/issues/175
  • Neue Syntax für lvalue: var b {.byaddr.} = expr, verbunden über import std/decls
  • Der Compiler unterstützt einen neuen Schalter -panics:on, der Laufzeitfehler wie IndexError oder OverflowError in schwerwiegende Fehler umwandelt, die nicht über try abgefangen werden können. Dadurch können die Laufzeiteffizienz und die Programmgröße verbessert werden.
  • Der generierte JS-Code verwendet nur Leerzeichen anstelle einer Mischung aus Leerzeichen und Tabulatoren.
  • Der Compiler hat Unterstützung für das .localPassc-Pragma hinzugefügt, das zur Verarbeitung spezieller C(++)-Backend-Optionen für eine C(++)-Datei verwendet werden kann, die aus dem aktuellen Nim-Modul generiert wird.
  • Nimpretty akzeptiert kein negatives Argument mehr für das Festlegen von Einrückungen, da dadurch Dateien beschädigt würden.
  • Neue Makros wurden hinzugefügt (Collect, Dup, Capture), verbunden über Importzucker.

Darüber hinaus wurden viele Änderungen an der Standardbibliothek hinzugefügt und viele Fehler behoben.

Source: linux.org.ru

Kommentar hinzufügen