Izdanje Nim 1.2.0

Izašla je nova verzija sistemskog programskog jezika Nim. Ima djelomičnu nekompatibilnost s verzijom 1.0, primjerice zbog strože pretvorbe tipa. Ali u ovom slučaju postoji oznaka -useVersion:1.0.

Glavna inovacija je novi skupljač smeća, omogućen opcijom -gc:arc. Autor jezika Andreas Rumpf će napisati detaljan članak o prednostima ARC-a, ali za sada vas poziva da pročitate svojim nastupom na FOSDEM-u, koji prikazuje rezultate usporedbe.

  • Kompajler sada podržava opciju --asm za praktičniji pregled proizvedenog asemblerskog koda.
  • Pragma poravnanja može se koristiti na varijablama i poljima objekta, to je slično alignama u C/C++.
  • Operator =sink sada nije obavezan. Kompajler sada može koristiti kombinaciju =destroy i copyMem za učinkovito premještanje objekata.
  • Pretvorbe u nepredznačene cijele brojeve ne provjeravaju se tijekom izvođenja. Detalji u https://github.com/nim-lang/RFCs/issues/175
  • Nova sintaksa za lvalue: var b {.byaddr.} = expr, povezano preko import std/decls
  • Kompajler podržava novi prekidač -panics:on, koji pretvara pogreške tijekom izvođenja kao što su IndexError ili OverflowError u fatalne pogreške koje se ne mogu uhvatiti pokušajem. To može poboljšati učinkovitost vremena izvođenja i veličinu programa.
  • Generirani JS kod koristi samo razmake umjesto zbrke razmaka i tabulatore.
  • Kompajler je dodao podršku za .localPassc pragmu, koja se može koristiti za rukovanje posebnim C(++) backend opcijama za C(++) datoteku koja je generirana iz trenutnog Nim modula.
  • Nimpretty više ne prihvaća negativan argument za postavljanje uvlake, jer je to kvarilo datoteke.
  • Dodane su nove makronaredbe (collect, dup, capture), povezane preko uvoznog šećera.

Osim toga, mnoge su promjene dodane standardnoj knjižnici i mnogi ispravci grešaka.

Izvor: linux.org.ru

Dodajte komentar