Pas dy vitesh zhvillimi, mĂ« 29 qershor doli qetĂ« dhe pa bujĂ« versioni i ri i gjuhĂ«s sĂ« programimit Lua â 5.4.
Lua është një gjuhë programimi e thjeshtë, që interpretohet dhe lehtë integrohet në aplikacione. Për shkak të këtyre karakteristikave, Lua përdoret gjerësisht si një gjuhë zgjerimi ose për përshkrimin e konfigurimeve të programeve (kryesisht, lojërave kompjuterike). Lua shpërndahet nën licencën MIT.
Versioni i mëparshëm (5.3.5) doli më 10 korrik 2018.
Ndryshimet kryesore në versionin e ri
një mbledhës i ri i plehrave mbi bazën e brezave (generational). Në funksionin collectgarbage parametrat setpause dhe setstepmul janë shpallur si të vjetëruar, ndërsa rekomandohet të përdoret parametri incremental;
një funksion i ri për dhënien e paralajmërimeve warn me mundësinë e deaktivizimit të shfaqjes së tyre;
implementimi i ri i math.random përdor algoritmin xoshiro256** në vend të libc të ofruar dhe inicizon gjeneratorin me një numër të rastësishëm;
konstatat (constant variables);
"variablat pĂ«r tâu mbyllur" (to-be-closed) â konstanta lokale, pĂ«r tĂ« cilat ekzekutohet metoda __close kur del nga fusha e pamjes;
funksioni i ri lua_resetthread â pastron stekun dhe kryen mbylljen e tĂ« gjithĂ« "variablave pĂ«r tâu mbyllur";
funksioni i ri coroutine.close â mbyllin kooperativin e specifikuar dhe tĂ« gjithĂ« variablat e saj "pĂ«r tĂ« mbyllur";
të dhënat e përdoruesit (userdata) mund të përmbajnë një grup vlerash me qasje sipas indekseve. Për të punuar me to janë futur funksione të reja: lua_newuserdatauv, lua_setiuservalue dhe lua_getiuservalue;
informacioni për debugimin e parametrave dhe vlerave të kthyera të funksioneve është i disponueshëm;
nĂ«se nĂ« njĂ« cikĂ«l pĂ«r numĂ«ruesi for pĂ«rdoret njĂ« indeks tĂ« plotĂ« dhe ndodh tejkalimi â cikli pĂ«rfundon;
në funksionin string.gmatch është shtuar një argument opsional, që përcakton një zhvendosje nga fillimi i vargut për kërkimin e përputhjeve;
funksionet e konvertimit të fshehtë të vargjeve në numra janë transferuar në bibliotekën e vargjeve, ka ndryshuar sjellja e tyre. Për shembull, rezultati i operacionit "1" + "2" tani është një numër i plotë, jo një numër me pikë float;
në funksionin e alokimit të memories mund të ndodhin gabime gjatë reduktimit të bllokut të memories;
njĂ« simbol i ri formatimi nĂ« funksionin string.format â %p (pĂ«r treguesit);
biblioteka utf8 pranon kodet e karaktereve deri nĂ« 2ÂłÂč (me njĂ« flamur tĂ« veçantĂ«, pa tĂ« lejohet vetĂ«m kode deri nĂ« 0x10FFFF dhe nuk lejohet pĂ«rdorimi i zĂ«vendĂ«suesve);
konstanta int, që dalin jashtë gamës së vlerave, konvertohen në numra me pikë float (më parë ndodhte prerja bit të dhënash);
metametoda __lt nuk përdoret më për të imituar metametodën __le, nëse është e nevojshme, metametoda __le duhet të caktohet në mënyrë të qartë;
etiketa për operatorin goto nuk mund të krijohet, nëse në hapësirën aktuale të dukshmërisë tashmë ekziston një etikete me të njëjtin emër (madje edhe nëse është përcaktuar në një hapësirë të jashtme);
metametoda __gc mund të mos jetë vetëm një funksion. Nëse tentativa për të thirrur metodën dështón, do të jepet një paralajmërim;
funksioni print nuk thërret tostring për çdo argument, por përdor konvertimet e tij të brendshme;
funksioni io.lines kthen një grup prej katër vlerash në vend të një, për të imituar sjelljen e vjetër, mbyllni thirrjen në kllapa nëse e përdorni si një parametr në thirrjen e funksionit tjetër.
Burimi: linux.org.ru
