Nim 1.2.0 release

Isang bagong bersyon ng Nim system programming language ang inilabas. Mayroon itong bahagyang hindi pagkakatugma sa bersyon 1.0, halimbawa dahil sa mas mahigpit na conversion ng uri. Ngunit sa kasong ito mayroong isang bandila -useVersion:1.0.

Ang pangunahing inobasyon ay isang bagong basurero, na pinagana ng -gc:arc na opsyon. Ang may-akda ng wika, si Andreas Rumpf, ay magsusulat ng isang detalyadong artikulo tungkol sa mga pakinabang ng ARC, ngunit sa ngayon ay inaanyayahan ka niyang magbasa sa kanyang pagganap sa FOSDEM, na nagpapakita ng mga resulta ng benchmark.

  • Sinusuportahan na ngayon ng compiler ang --asm na opsyon para sa mas maginhawang pagsusuri sa ginawang assembly code.
  • Maaaring gamitin ang align pragma sa mga variable at field ng object, ito ay katulad ng alignas sa C/C++.
  • Opsyonal na ngayon ang operator ng =sink. Ang compiler ay maaari na ngayong gumamit ng kumbinasyon ng =destroy at copyMem upang mailipat nang mahusay ang mga bagay.
  • Ang mga conversion sa mga unsigned integer ay hindi sinusuri sa runtime. Mga detalye sa https://github.com/nim-lang/RFCs/issues/175
  • Bagong syntax para sa lvalue: var b {.byaddr.} = expr, konektado sa pamamagitan ng import std/decls
  • Sinusuportahan ng compiler ang isang bagong switch -panics:on, na ginagawang mga error sa runtime gaya ng IndexError o OverflowError na hindi mahuli sa pamamagitan ng pagsubok. Mapapabuti nito ang kahusayan ng runtime at laki ng programa.
  • Ang nabuong JS code ay gumagamit lamang ng mga puwang sa halip na isang mishmash ng mga puwang at tab.
  • Ang compiler ay nagdagdag ng suporta para sa .localPassc pragma, na maaaring gamitin upang pangasiwaan ang mga espesyal na C(++) na opsyon sa backend para sa isang C(++) file na nabuo mula sa kasalukuyang Nim module.
  • Hindi na tumatanggap ang Nimpretty ng negatibong argumento para sa pagtatakda ng indentation, dahil sinisira nito ang mga file.
  • Ang mga bagong macro ay naidagdag na (kolektahin, dup, makunan), konektado sa pamamagitan ng pag-import ng asukal.

Bilang karagdagan, maraming mga pagbabago ang naidagdag sa karaniwang library at maraming mga pag-aayos ng bug.

Pinagmulan: linux.org.ru

Magdagdag ng komento