Verëffentlechung vun der Nim 1.4.0 Programméiersprooch

Eng nei Versioun vun der Nim System Programméierungssprooch ass verëffentlecht ginn, déi dëse September säin XNUMX Joer Anniversaire gefeiert huet. éischt stabil Versioun. D'Sprooch ass an der Syntax ähnlech wéi Python, a bal wéi C ++ an der Leeschtung. Geméiss FAQ D'Sprooch léint vill vun (an der Uerdnung vum Bäitrag): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Schafft iwwerall dank der Fäegkeet fir an C/C++/Objective-C/JS ze kompiléieren. Et ënnerstëtzt makroen, OOP, generesch, Ausnamen, waarm Code Swap a vill méi. Lizenz: MIT.

Déi bedeitendst Ännerungen:

  • Et gëtt en neien ORC Müllsammler deen den Algorithmus vun ARC benotzt, awer gläichzäiteg kreesfërmeg Referenzen op eng speziell Manéier behandelt. Aktivéiert vun der -gc:orc Optioun. Iwwer d'ARC / ORC Differenzen et gëtt e super Artikel.

  • E Modus fir strikt Funktiounsdefinitioune gouf bäigefüügt, wat en zousätzleche Scheck fir Objektmutabilitéit erméiglecht. Aktivéiert iwwer d'Pragma {.experimental: "strictFuncs".} oder iwwer den --experimental:strictFuncs Schlëssel.

  • De Schlësselwuert vun kann elo als Bedreiwer benotzt ginn.

  • Dobäi .noalias Pragma. Et mapt op d'C Restriktioun Schlësselwuert fir d'Effizienz ze erhéijen déi de Schlësselwuert ubitt.

  • Spezifesch Warnunge kënnen elo a Feeler ëmgewandelt ginn iwwer --warningAsError[X]:on|off.

  • Neie Kommando: nim r main.nim [args...], deen main.nim kompiléiert a leeft, an enthält --usenimcache sou datt d'Resultat an $nimcache/main$exeExt gespäichert gëtt, mat der selwechter Logik wéi nim c - r vun der Rekompilatioun lass ze ginn wann d'Quellen net geännert hunn. Beispill:

nim r compiler/nim.nim --help # fir d'éischte Kéier kompiléiert
echo 'import os; echo getCurrentCompilerExe()' | nim r - # dëst funktionnéiert och
nim r compiler/nim.nim --fullhelp # ouni Recompilatioun
nim r —nimcache:/tmp main # binär gespäichert an /tmp/main

  • En neien Hiweis bäigefüügt -hint:msgOrigin, dee weist wou de Compiler Feeler-/Warnmeldungen generéiert huet. Dëst hëlleft wann et net kloer ass wou de Message hierkënnt.

  • Fändel bäigefüügt -Backend:js|c|cpp|objc (oder -b:js, etc.) fir de Backend z'änneren.

  • Added --usenimcache Fändel fir Binären op nimcache auszeginn.

  • Schlësselen ewechgeholl: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • D'Nimsuggest Utility weist elo net nëmmen d'Pre-Deklaratioun, awer och d'Implementatiounsplaz fir eng Def-Ufro.

Zousätzlech si vill Ännerungen an der Standardbibliothéik bäigefüügt a vill Bugfixes.

Source: linux.org.ru