Nim 1.2.0 eldono

Nova versio de la Nim-sistema programlingvo estis publikigita. Ĝi havas partan nekongruon kun versio 1.0, ekzemple pro pli strikta tipkonverto. Sed ĉi-kaze estas flago -useVersion:1.0.

La ĉefa novigo estas nova rubkolektilo, ebligita per la opcio -gc:arc. La aŭtoro de la lingvo, Andreas Rumpf, skribos detalan artikolon pri la avantaĝoj de ARC, sed nuntempe li invitas vin legi kun lia agado ĉe FOSDEM, kiu montras la komparnormajn rezultojn.

  • La kompililo nun subtenas la opcion --asm por pli oportuna ekzameno de la produktita kunigkodo.
  • La viciga pragmo povas esti uzata sur objektovariabloj kaj kampoj, ĉi tio similas al allinioj en C/C++.
  • La =sink operatoro nun estas nedeviga. La kompililo nun povas uzi kombinaĵon de =destroy kaj copyMem por movi objektojn efike.
  • Konvertiĝoj al sensignaj entjeroj ne estas kontrolitaj ĉe rultempo. Detaloj en https://github.com/nim-lang/RFCs/issues/175
  • Nova sintakso por lvaloro: var b {.byaddr.} = expr, konektita per import std/decls
  • La kompililo subtenas novan ŝaltilon -panics:on, kiu igas rultempajn erarojn kiel IndexError aŭ OverflowError fatalajn erarojn, kiuj ne povas esti kaptitaj per provo. Ĉi tio povas plibonigi rultempan efikecon kaj programgrandecon.
  • La generita JS-kodo uzas nur spacojn anstataŭ miksaĵo de spacoj kaj langetoj.
  • La kompililo aldonis subtenon por la pragma .localPassc, kiu povas esti uzata por pritrakti specialajn C(++) malantaŭajn opciojn por C(++) dosiero kiu estas generita de la nuna Nim-modulo.
  • Nimpretty ne plu akceptas negativan argumenton por agordi indentaĵon, ĉar tio rompis dosierojn.
  • Novaj makrooj estis aldonitaj (kolekti, dup, kapti), konektitaj per importa sukero.

Krome, multaj ŝanĝoj estis aldonitaj al la norma biblioteko kaj multaj eraroj korektoj.

fonto: linux.org.ru

Aldoni komenton