Versiunea Nim 1.2.0

A fost lansată o nouă versiune a limbajului de programare a sistemului Nim. Are incompatibilitate parțială cu versiunea 1.0, de exemplu din cauza conversiei de tip mai stricte. Dar în acest caz există un flag -useVersion:1.0.

Principala inovație este un nou colector de gunoi, activat de opțiunea -gc:arc. Autorul limbii, Andreas Rumpf, urmează să scrie un articol detaliat despre avantajele ARC, dar deocamdată vă invită să citiți cu prestaţia sa la FOSDEM, care arată rezultatele benchmark-ului.

  • Compilatorul acceptă acum opțiunea --asm pentru o examinare mai convenabilă a codului de asamblare produs.
  • Pragma de aliniere poate fi folosită pe variabile și câmpuri obiect, aceasta este similară cu alinierea din C/C++.
  • Operatorul =sink este acum opțional. Compilatorul poate folosi acum o combinație de =destroy și copyMem pentru a muta obiectele în mod eficient.
  • Conversiile în numere întregi nesemnate nu sunt verificate în timpul execuției. Detalii în https://github.com/nim-lang/RFCs/issues/175
  • Sintaxă nouă pentru lvalue: var b {.byaddr.} = expr, conectat prin import std/decls
  • Compilatorul acceptă un nou comutator -panics:on, care transformă erorile de rulare, cum ar fi IndexError sau OverflowError, în erori fatale care nu pot fi detectate prin încercare. Acest lucru poate îmbunătăți eficiența timpului de rulare și dimensiunea programului.
  • Codul JS generat folosește doar spații în loc de un amestec de spații și file.
  • Compilatorul a adăugat suport pentru pragma .localPassc, care poate fi folosită pentru a gestiona opțiuni speciale de backend C(++) pentru un fișier C(++) care este generat din modulul Nim curent.
  • Nimpretty nu mai acceptă un argument negativ pentru setarea indentării, deoarece aceasta a fost spargerea fișierelor.
  • Au fost adăugate noi macrocomenzi (collect, dup, capture), conectate prin import sugar.

În plus, au fost adăugate multe modificări bibliotecii standard și multe remedieri de erori.

Sursa: linux.org.ru

Adauga un comentariu