Lëshimi i gjuhës së programimit Nim 2.2.8

U lançua i gjuhës së programimit Nim 2.2.8. Nim është një gjuhë programimi e tipizuar statikisht dhe e kompiliuar me sintaksë të frymëzuar nga Python dhe mundësi metaprogramimi në nivelin e Lisp. Gjuhë e cila kompilohesh në C, C++ dhe JavaScript, duke ofruar performancë në nivelin e C-së me shprehshmëri të gjuhëve të nivelit të lartë.

Mundësitë e Nim përfshijnë një sistem makrosh që funksionon mbi AST gjatë kompilimit, mbështetje për programimin e përgjithshëm me koncepte, shpërndarje të shumëfishtë (multiple dispatch), menaxhim të determinueshëm të memories me mbështetje për disa strategji (ARC/ORC, refc, etiketim dhe pastrimin), mbështetje të integruar për async/await për programimin asinkron dhe FFI për integrim të thjeshtë me C/C++/JavaScript. Nim pozicionohet si një gjuhë sistemet, e përshtatshme për zhvillimin nga sisteme të integruara deri te uebi,servera, me theks në efikasitet, sigurinë e memories dhe lehtësinë e zhvillimit.

Versioni 2.2.8 u lansua katër muaj pas versionit 2.2.6 dhe përfshin 89 komitete me ndreqje dhe përmirësime. Përmirësimi kryesor i lëshimit është një rritje e rëndësishme e stabilitetit të alokatorit të kujtesës standard gjatë përdorimit intensiv të shumëfishtë. Sipas zhvilluesve, nevoja për zgjidhjen alternative "-d:useMalloc" për kodin shumëfishtë ka mbetur në të kaluarën. Përdoruesit janë ftuar të lënë reagime.

Ndër ndreqjet e gabimeve:

  • SIGBUS gjatĂ« iterimit mbi njĂ« tabelĂ« konstante pĂ«r shkak tĂ« asgjĂ«simit tĂ« parakohshĂ«m tĂ« objekteve temporale;
  • SIGSEGV me iteratorĂ« tĂ« mbyllur;
  • gjenerim i papĂ«rshtatshĂ«m i kodit C gjatĂ« inicializimit tĂ« .global brenda metodĂ«s;
  • gabim nĂ« trajtimin e finally nĂ« iteratorin e mbyllur nĂ« prani tĂ« try..except;
  • mangĂ«si nĂ« emĂ«rimin e stileve C++ gjatĂ« pĂ«rdorimit tĂ« —debuginfo;
  • punĂ« e ngadaltĂ« e setLen kur zvogĂ«lohet madhĂ«sia e sekuencĂ«s pĂ«r shkak tĂ« pastrimit tĂ« tepruar tĂ« kujtesĂ«s;
  • mungesĂ« e setLenUninit pĂ«r modalitetin "—mm:refc";
  • ngadalĂ«sim i pĂ«rpunimit tĂ« term rewriting nĂ« skedarĂ« tĂ« mĂ«dhenj;
  • SIGSEGV gjatĂ« pĂ«rdorimit tĂ« tipave distinct me caktim nĂ« objekte heap nĂ« modalitetin refc;
  • akses i pavlefshĂ«m nĂ« m_type nĂ« hooks pĂ«r tipet e pĂ«rgjithshme distinct nĂ«n ARC/ORC/ATOMICARC;
  • çështje e kompilatorit gjatĂ« kalimit tĂ« njĂ« tuple me «items» nga koncepti;
  • konceptet rekursive shkaktuan segfault tĂ« kompilatorit;
  • gjenerim i pavlefshĂ«m i kĂ«rkesave HTTPS pĂ«rmes HTTP-proxyt nĂ« httpclient;
  • sjellje e pacaktuar gjatĂ« operacionit shl;
  • prerje e literaleve tĂ« gjata tĂ« numrave pa paralajmĂ«rim;
  • dĂ«shtime tĂ« kompilatorit gjatĂ« njĂ« serie instancimesh tĂ« pavlefshme tĂ« pĂ«rgjithshme;
  • shtuar mĂ«nyra —styleCheck:warn.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster