Programmeerimiskeele Nim versioon 2.2.8 väljaandmine

Esitatud on süsteemikeele Nim versioon 2.2.8. Nim on staatiliselt tüübitud kompileeritav programmeerimiskeel, mille süntaks on inspireeritud Pythonist ja mis toetab metaprogrammeerimist Lisp'i tasemel. Keel kompileerub C, C++ ja JavaScript'i, tagades C-taseme jõudluse kõrgetasemeliste keelte väljendusrikkuse. Projekti kood on litsentseeritud MIT litsentsi alusel.

Nimi võimalused hõlmavad makrosüsteemi, mis töötab AST-lt kompileerimise ajal, üldprogrammeerimise toetust kontseptsioonide kaudu, mitme suunamise (multiple dispatch), määratletud mäluhalduse toetust mitmete strateegiate (ARC/ORC, refc, markeerimine ja koristamine) abil, sisseehitatud async/await toe asünkroonilisele programmeerimisele ja FFI, mis lihtsustab C/C++/JavaScript'iga integreerimist. Nim positsioneerib end süsteemikeelena, mis sobib alates sisseehitatud süsteemidest kuni veebirakenduste arendamiseks,serverite, rõhutades tõhusust, mälu ohutust ja arendamise mugavust.

Väljaanne 2.2.8 ilmus neli kuud pärast versiooni 2.2.6 ning sisaldab 89 commit'i vigade paranduste ja täiustustega. Versiooni peamine täiustus on märkimisväärne stabiilsuse paranemine vaikemälu allokaatoris mitme lõime aktiivse kasutuse korral. Arendajate sõnul on vajadus alternatiivlahenduse „-d:useMalloc” järele mitme lõime koodis minevikku jäänud. Kasutajad on kutsutud tagasisidet jätma.

Parandatud vead:

  • SIGBUS konstantse tabeli iteratsiooni ajal varajase ajutiste objektide hävitamise tõttu;
  • SIGSEGV sulgeva iteratooriga;
  • vale C-koodi genereerimine .global initsialiseerimisel meetodis;
  • vea töötlemine finally osas sulgevas iteratooris try..except puhul;
  • vale name mangling C++ stiilis —debuginfo kasutamisel;
  • setLen aeglane toimimine järjestuse suuruse vähendamisel liigse mälupuhastuse tõttu;
  • puudub setLenUninit režiimi „—mm:refc” jaoks;
  • term rewriting töötlemise hangumine suurte failide puhul;
  • SIGSEGV distinct-tüüpide kasutamisel heap-objektidesse määramisel refc režiimis;
  • m_type'i valevade väärkasutamine ARC/ORC/ATOMICARC jaoks üldtüüpide hooks'ides;
  • kompilaatori tõrge, kui kanti üle tuple, mis sisaldab „items“ kontseptsioonist;
  • rekursiivsed kontseptsioonid põhjustasid kompilaatori segfault'i;
  • HTTPS-päringute vale genereerimine HTTP-proxide kaudu httpclient'is;
  • määratlemata käitumine shl operatsiooni puhul;
  • pikad täisarvulised literaalid lükatakse tagasi ilma hoiatuseta;
  • kompilaatori tõrked mitmete vale üldiste instantsiate puhul;
  • lisatud režiim —styleCheck:warn.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster