Nei Versioun vun der Nim Programméiersprooch 0.20

stattfonnt huet System Programméierungssprooch Verëffentlechung Nim 0.20.0. D'Sprooch benotzt statesch Tippen a gouf mam Pascal, C++, Python a Lisp am Kapp erstallt. Nim Quellcode ass an eng C, C ++ oder JavaScript Representatioun kompiléiert. Duerno gëtt de resultéierende C/C++ Code an eng ausführbar Datei zesummegesat mat all verfügbare Compiler (clang, gcc, icc, Visual C++), wat Iech erlaabt Leeschtung no bei C z'erreechen, wann Dir d'Käschte vum Laafen net berücksichtegt. den Dreckstipp. Ähnlech wéi Python benotzt Nim Indentatioun als Blockseparatoren. Metaprogramméierungsinstrumenter a Fäegkeeten fir Domain-spezifesch Sproochen (DSLs) ze kreéieren ginn ënnerstëtzt. Projet Code geliwwert ënner der MIT Lizenz.

D'Nim 0.20 Verëffentlechung kann als Kandidat fir déi éischt stabil 1.0 Verëffentlechung considéréiert ginn, mat verschiddenen Interoperabilitéit briechen Ännerungen néideg fir déi éischt stabil Branche ze bilden, déi den Zoustand vun der Sprooch engagéiert. D'Versioun 1.0 gëtt als stabil, laangfristeg Ënnerstëtzungsverëffentlechung ugesinn, déi garantéiert ass fir Réckkompatibilitéit am stabiliséierten Deel vun der Sprooch z'erhalen. Separat wäert de Compiler och en experimentellen Modus verfügbar hunn, an deem nei Features entwéckelt ginn, déi Réckkompatibilitéit briechen.

Ënnert den Ännerungen am Nim 0.20 proposéiert sinn:

  • "Net" ass elo ëmmer en unäre Bedreiwer, d.h. Ausdréck wéi "assert(not a)" sinn elo net erlaabt an nëmmen "assert not a" ass erlaabt;
  • Aktivéiert strikt Kontrollen fir d'Konversioun vun ganz Zuelen a reellen Zuelen op der Kompiléierungsstadium, d.h. den Ausdrock "const b = uint16(-1)" wäert elo zu engem Fehler resultéieren, well -1 kann net an en net ënnerschriwwenen Ganzzueltyp ëmgewandelt ginn;
  • Auspackung vun Tupels fir Konstanten a Loopvariablen gëtt zur Verfügung gestallt.
    Zum Beispill, elo kënnt Dir Uerderen benotzen wéi 'const (d, e) = (7, "aacht")" an "fir (x, y) an f";

  • Gitt Standardinitialiséierung vun Hashes an Dëscher. Zum Beispill, nodeems Dir "var s: HashSet[int]" erkläert hutt, kënnt Dir direkt "s.incl (5)" ausféieren, wat virdru zu engem Feeler gefouert huet;
  • Verbesserte Fehlerinformatioun fir Probleemer am Zesummenhang mam "Fall" Bedreiwer an Arrayindex ausserhalb vu Grenzen;
  • D'Ännerung vun der Tabelllängt wärend der Iteratioun ass verbueden.

Source: opennet.ru

Setzt e Commentaire