Die Programmiersprache Nim 1.4.0 ist erschienen

Eine neue Version der Programmiersprache Nim wurde veröffentlicht, die diesen September ein Jahr seit dem Erscheinen der ersten stabilen Version feiert. stabilen Version.In der Syntax Ă€hnelt die Sprache Python, wĂ€hrend sie in der Leistung fast so gut ist wie C++. Laut FAQ ĂŒbernimmt die Sprache viel von (in absteigender Reihenfolge des Einflusses): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Sie funktioniert ĂŒberall dank der Möglichkeit, in C/C++/Objective-C/JS zu kompilieren. Sie unterstĂŒtzt Makros, OOP, Generika, Ausnahmen, Hot Code Replacement und vieles mehr. Lizenz — MIT.

Die bedeutendsten Änderungen:

  • Ein neuer Garbage Collector ORC wurde eingefĂŒhrt, der einen Algorithmus aus ARC verwendet, jedoch zyklische Referenzen speziell behandelt. Aktivierbar mit der Option —gc:orc. Über die Unterschiede zwischen ARC/ORC gibt es einen großartigen Artikel..

  • Es wurde ein Modus strenger Funktionsdefinitionen hinzugefĂŒgt, bei dem eine zusĂ€tzliche PrĂŒfung auf MutabilitĂ€t von Objekten erfolgt. Aktivierbar durch Pragma {.experimental: "strictFuncs".} oder durch den SchlĂŒssel —experimental:strictFuncs.

  • Das SchlĂŒsselwort from kann jetzt als Operator verwendet werden.

  • Eine neue Pragma .noalias wurde hinzugefĂŒgt. Sie entspricht dem SchlĂŒsselwort C restrict, um die Effizienz zu erhöhen, die dieses Wort bieten kann.

  • Bestimmte Warnungen können jetzt durch —warningAsError[X]:on|off in Fehler umgewandelt werden.

  • Ein neuer Befehl: nim r main.nim [args...], der main.nim kompiliert und ausfĂŒhrt und —usenimcache beinhaltet, sodass das Ergebnis in $nimcache/main$exeExt gespeichert wird, indem die gleiche Logik wie bei nim c -r angewendet wird, um eine erneute Kompilierung zu vermeiden, wenn sich die Quelltexte nicht geĂ€ndert haben. Beispiel:

nim r compiler/nim.nim —help # beim ersten Mal kompiliert
echo ‘import os; echo getCurrentCompilerExe()’ | nim r — # das funktioniert auch
nim r compiler/nim.nim —fullhelp # ohne erneute Kompilierung
nim r —nimcache:/tmp main # BinĂ€rdatei in /tmp/main gespeichert

  • Ein neuer Hinweis —hint:msgOrigin wurde hinzugefĂŒgt, der zeigt, wo der Compiler Nachrichten ĂŒber Fehler/Warnungen erzeugt hat. Dies hilft, wenn es nicht offensichtlich ist, woher die Nachricht kam.

  • Ein Flag —backend:js|c|cpp|objc (oder -b:js usw.) wurde hinzugefĂŒgt, um den Backend zu wechseln.

  • Ein Flag —usenimcache wurde hinzugefĂŒgt, um BinĂ€rdateien in nimcache auszugeben.

  • Die SchlĂŒssel —oldNewlines, —laxStrings, —oldast, —oldgensym wurden entfernt.

  • Das Tool nimsuggest zeigt jetzt nicht nur die vorlĂ€ufige Deklaration, sondern auch den Ort der Implementierung auf Anfrage def.

DarĂŒber hinaus wurden zahlreiche Änderungen an der Standardbibliothek und viele Fehlerbehebungen vorgenommen.

Quelle: linux.org.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster