Lua 5.4

Pas dy vitesh zhvillimi, më 29 qershor, një version i ri i gjuhës programuese Lua, 5.4, u publikua në heshtje dhe në heshtje.

Lua është një gjuhë programimi e thjeshtë, e interpretuar që mund të integrohet lehtësisht në aplikacione. Për shkak të këtyre cilësive, Lua përdoret gjerësisht si një gjuhë për zgjerimin ose përshkrimin e konfigurimit të programeve (në veçanti, lojërave kompjuterike). Lua shpërndahet me licencën e MIT.

Versioni i mëparshëm (5.3.5) u publikua më 10 korrik 2018.

Ndryshimet kryesore në versionin e ri

  • gjenerata e re e mbeturinave. Në funksionin collectgarbage, parametrat setpause dhe setstepmul janë zhvlerësuar dhe në vend të tyre rekomandohet parametri inkremental;

  • një funksion i ri për lëshimin e paralajmërimeve të paralajmërimit me aftësinë për të çaktivizuar shfaqjen e tyre;

  • implementimi i ri i matematikës.random përdor algoritmin xoshiro256** në vend të libc të dhënë dhe inicializon gjeneratorin me një numër të rastësishëm;

  • variabla konstante;

  • Variablat “to-be-closed” janë konstante lokale për të cilat ekzekutohet metoda __close kur largohet nga fushëveprimi;

  • funksioni i ri lua_resetthread - pastron pirgun dhe mbyll të gjitha variablat "të mbyllura";

  • funksioni i ri coroutine.close - mbyll korutinën e specifikuar dhe të gjitha variablat e saj "të mbyllura";

  • të dhënat e përdoruesit mund të përmbajnë një grup vlerash të aksesuara nga indeksi. Funksione të reja janë futur për të punuar me ta: lua_newuserdatauv, lua_setiuservalue dhe lua_getiuservalue;

  • Informacioni i korrigjimit të gabimeve në lidhje me parametrat dhe vlerat e kthimit të funksioneve është i disponueshëm;

  • nëse një indeks i plotë përdoret në një cikli for dhe ndodh një tejmbushje, cikli përfundon;

  • një argument opsional është shtuar në funksionin string.gmatch, duke specifikuar zhvendosjen nga fillimi i vargut për të kërkuar përputhje;

  • funksionet për konvertimin e nënkuptuar të vargjeve në numra janë zhvendosur në bibliotekën e vargjeve dhe sjellja e tyre ka ndryshuar. Për shembull, rezultati i operacionit "1" + "2" është tani një numër i plotë dhe jo një numër me pikë lundruese;

  • në funksionin e alokimit të memories, mund të ndodhë një gabim kur zvogëloni një bllok memorie;

  • karakter i ri i formatimit në funksionin string.format - %p (për pointerët);

  • biblioteka utf8 pranon kode karakteresh deri në 2³¹ (nëse specifikohet një flamur i veçantë, pa të lejohen vetëm kodet deri në 0x10FFFF dhe zëvendësuesit nuk lejohen);

  • konstantet e numrave të plotë jashtë gamës së vlerave konvertohen në numra lundrues (ka ndodhur më parë prerja e biteve);

  • metametoda __lt nuk përdoret më për të imituar metametodën __le; nëse është e nevojshme, metametoda __le duhet të specifikohet në mënyrë eksplicite;

  • një emërtim për një deklaratë goto nuk mund të krijohet nëse një etiketë me të njëjtin emër ekziston tashmë në shtrirjen aktuale (edhe nëse është përcaktuar në shtrirjen e jashtme);

  • Metametoda __gc mund të jetë më shumë se thjesht një funksion. Nëse një përpjekje për të thirrur një metodë dështon, do të printohet një paralajmërim;

  • funksioni i printimit nuk thërret tostring për çdo argument, por përdor konvertimet e veta 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 po e kaloni si parametër në një thirrje tjetër funksioni.

Burimi: linux.org.ru

Shto një koment