Release der Programmiersprache Nim 1.4.0

Eine neue Version der Programmiersprache Nim ist erschienen, die im September ihr einjĂ€hriges Bestehen seit der Veröffentlichung der ersten stabilen Version. In Bezug auf die Syntax Ă€hnelt die Sprache Python, wĂ€hrend die Leistung nahezu die von C++ erreicht. Laut FAQ entlehnt die Sprache in hohem Maße aus (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. UnterstĂŒtzt werden 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. Er wird mit der Option —gc:orc aktiviert. Zu den Unterschieden zwischen ARC/ORC gibt es einen hervorragenden Artikel.

  • Ein Modus fĂŒr strikte Funktionsdefinitionen wurde hinzugefĂŒgt, bei dem eine zusĂ€tzliche ÜberprĂŒfung der MutabilitĂ€t von Objekten aktiviert wird. Dies geschieht ĂŒber die Pragma {.experimental: "strictFuncs".} oder den SchlĂŒssel —experimental:strictFuncs.

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

  • Die .noalias-Pragma wurde hinzugefĂŒgt. Diese wird mit dem SchlĂŒsselwort C restrict verknĂŒpft, um die Effizienz zu steigern, die dieses Wort bieten kann.

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

  • Neue Anweisung: nim r main.nim [args
], die main.nim kompiliert und ausfĂŒhrt und —usenimcache einschließt, sodass das Ergebnis in $nimcache/main$exeExt gespeichert wird, unter Verwendung derselben Logik wie nim c -r, um eine Neukompilierung zu vermeiden, wenn sich die Quellcodes nicht geĂ€ndert haben. Beispiel:

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

  • Eine neue Option —hint:msgOrigin wurde hinzugefĂŒgt, die anzeigt, wo der Compiler Fehler-/Warnmeldungen erzeugt hat. Dies hilft, wenn unklar ist, woher die Meldung stammt.

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

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

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

  • Das nimsuggest-Tool zeigt jetzt nicht nur die Vorabdeklaration, sondern auch den Standort der Implementierung auf Anfrage def.

ZusĂ€tzlich wurden zahlreiche Änderungen an der Standardbibliothek sowie viele Bugfixes vorgenommen.

Quelle: linux.org.ru

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster