Gjuha e programimit Lua 5.5 tani është e disponueshme

Pas pas pesë vitesh zhvillimi, është disponueshme lëshimi i Lua 5.5, një gjuhë skenari e shpejtë dhe kompakte, e cila ka marrë përhapje të madhe si gjuhë e integruar për përcaktimin e konfiguracioneve dhe për shkruarjen e zgjerimeve. Kodi i interpretuesit Lua është shkruar në gjuhën C dhe shpërndahet nën licencën MIT.

Lua kombinon një sintaksë të thjeshtë procedurale me mundësi për përshkrimin e të dhënave përmes përdorimit të arrave asociative dhe semantikës së zgjerueshme të gjuhës. Në Lua përdoret tipizimi dinamik, dhe strukturat gjuhësore konvertohen në kod bajtësor që ekzekutohet mbi një makinë virutale me regjistra, me një mbledhës automatik të mbeturinave. Interpretuesi është formuar si një bibliotekë, që mund të integrohet në projekte në gjuhët C dhe C++.

Novitetet kryesore:

  • PĂ«r pjesĂ«n mĂ« tĂ« madhe tĂ« operacioneve tĂ« mbledhjes sĂ« mbeturinave, pĂ«rdoret njĂ« mod i inkrementalizuar, ku cikli i mbledhjes sĂ« mbeturinave ndahet nĂ« hapa tĂ« veçantĂ«, qĂ« ndĂ«rpriten me ekzekutimin e programit, duke lejuar eliminimin e ndalesave tĂ« gjata tĂ« ekzekutimit tĂ« aplikacioneve me njĂ« numĂ«r tĂ« madh objektesh nĂ« memorie.
  • ËshtĂ« propozuar njĂ« implementim kompakt i arrave qĂ« kĂ«rkon 60% mĂ« pak memorie pĂ«r arrat me tĂ« dhĂ«na njĂ«lloj (kursimi arrihet duke ruajtur tĂ« dhĂ«nat mbi tipin jo pĂ«r çdo element, por pĂ«r njĂ« grup elementesh).
  • ËshtĂ« shtuar mundĂ«sia e shpalljes sĂ« qartĂ« tĂ« variablave globalĂ« nĂ« çdo bllok kodi pĂ«rmes fjalĂ«s kyçe "global". Kur citohet nĂ« bllokun e kodit shprehjes me fjalĂ«n kyçe "global", tĂ« gjitha variablat duhet tĂ« shpallen patjetĂ«r qartĂ«. NĂ«se shpallja "global" mungon, atĂ«herĂ« implicit vendoset shprehja "global *" e cila ruan sjelljen e vjetĂ«r dhe tĂ« gjithĂ« variablat interpretohen si globalĂ«. Gjithashtu, Ă«shtĂ« shtuar shprehja "global *" e cila bĂ«n tĂ« mundur qĂ« tĂ« gjitha variablat globale tĂ« pandryshuara tĂ« jenĂ« tĂ« qasshme nĂ« modin vetĂ«m pĂ«r lexim. X = 1 — Ok, X Ă«shtĂ« variabĂ«l globale, sjellja e vjetĂ«r si standart. bĂ«j global Y — shpallja e variablit Y si global, tĂ« gjitha variablat e tjera nĂ« bllok duhet tĂ« shpallen qartĂ« Y = 1 — Ok, variabli Y Ă«shtĂ« pĂ«rcaktuar mĂ« parĂ« X = 1 — Gabim, variabli X nuk Ă«shtĂ« pĂ«rcaktuar fund X = 2 — Ok, jashtĂ« bllokut, sjellja e vjetĂ«r vazhdon
  • VariablĂ«n e kontrollit tĂ« specifikuara nĂ« ciklet «for» tani janĂ« tĂ« disponueshme vetĂ«m pĂ«r lexim dhe nuk mund tĂ« ndryshohen brenda trupit tĂ« ciklit. PĂ«r shembull, variabla i, e shpallur nĂ« ciklin «for i = 1, 5 do», nuk mund tĂ« ndryshohet brenda trupit tĂ« ciklit.
  • Kur printohen numra me pikĂ« float pĂ«rmes funksionit print, tani jepen njĂ« numĂ«r i mjaftueshĂ«m shifrash pĂ«r njĂ« konvertim tĂ« saktĂ« tĂ« kthimit nga string nĂ« pĂ«rfaqĂ«simin origjinal.
  • Numri i lejuar i niveleve tĂ« nguljes sĂ« konstruktoreve tĂ« tabelĂ«s Ă«shtĂ« rritur.
  • Funksioni table.create(nseq, nrec) Ă«shtĂ« shtuar pĂ«r tĂ« krijuar njĂ« tabelĂ« tĂ« zbrazĂ«t dhe pĂ«r tĂ« alokuar paraprakisht hapĂ«sirĂ« pĂ«r numrin e caktuar tĂ« elementeve.
  • NĂ« funksionin utf8.offset, tani kthehet jo vetĂ«m zhvendosja nĂ« byte deri nĂ« fillim tĂ« simbolit, por edhe pozita e fundiit tĂ« simbolit.
  • Shtimi i mbĂ«shtetjes pĂ«r krijimin e stringjeve tĂ« jashtme qĂ« ruhen nĂ« memorie, e cila nuk menaxhohet nga mbledhĂ«si i plehrave Lua.
  • Funksioni luaL_openselectedlibs Ă«shtĂ« shtuar pĂ«r tĂ« ngarkuar bibliotekĂ«n e zbrazĂ«t, si dhe funksioni luaL_makeseed, qĂ« formon njĂ« farĂ« pĂ«r funksionin lua_newstate.
  • NĂ« lua.c, Ă«shtĂ« siguruar ngarkimi dinamik i bibliotekĂ«s ‘readline’ kur Ă«shtĂ« e pranishme (nĂ«se biblioteka Ă«shtĂ« nĂ« sistem, ajo ngarkohet dhe funksionet pĂ«r redaktimin e stringjeve bĂ«hen tĂ« disponueshme).
  • JanĂ« pĂ«rfshirĂ« optimizime pĂ«r kursimin e memories gjatĂ« ngarkimit tĂ« kodit bajt tĂ« kompiliuar paraprakisht - Lua tani mund tĂ« rishpĂ«rndajĂ« memorien nĂ« disa struktura tĂ« brendshme pa krijuar kopje gjatĂ« ngarkimit tĂ« kodit bajt tĂ« pĂ«rsĂ«ritur.
  • RishpĂ«rndarja e tĂ« gjitha stringjeve Ă«shtĂ« siguruar gjatĂ« operacioneve ‘dump’ dhe ‘undump’.
  • NĂ« bufet ndihmĂ«se Ă«shtĂ« siguruar rishpĂ«rndarja e bufereve (pa kopje nĂ« njĂ« buf tĂ« ri) gjatĂ« krijimit tĂ« stringut pĂ«rfundimtar.

Burimi: opennet.ru

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