Lua 5.4

Pēc divu gadu izstrādes, 29. jÅ«nijā klusi un nemanāmi iznāca jauna versija programmēŔanas valodas Lua — 5.4.

Lua ir vienkārÅ”a interpretējama programmēŔanas valoda, kas viegli iekļaujas lietojumprogrammu kodā. Å o Ä«paŔību dēļ Lua plaÅ”i izmanto kā paplaÅ”inājuma vai programmu konfigurācijas aprakstīŔanas valodu (Ä«paÅ”i datora spēlēs). Lua tiek izplatÄ«ta ar MIT licenci.

IepriekŔējā versija (5.3.5) iznāca 2018. gada 10. jÅ«lijā.

Galvenās izmaiņas jaunajā versijā

  • jauns paaudžu balstÄ«ts atkritumu savācējs (generational). Funkcijā collectgarbage parametri setpause un setstepmul ir atzÄ«ti par novecojuÅ”iem, vietā ieteicams lietot parametru incremental;

  • jauna brÄ«dinājumu izsniegÅ”anas funkcija warn ar iespēju izslēgt to attēloÅ”anu;

  • jauna math.random realizācija izmanto xoshiro256** algoritmu, nevis libc nodroÅ”ināto, un inicializē Ä£eneratoru ar nejauÅ”u skaitli;

  • konstantes (constant variables);

  • Ā«slēdzamāsĀ» (to-be-closed) mainÄ«gās — lokālas konstantas, kurām tiek izpildÄ«ta metode __close, iznākot no redzesloka;

  • jauna funkcija lua_resetthread — notÄ«ra steku un veic visu Ā«slēdzamoĀ» mainÄ«go slēgÅ”anu;

  • jauna funkcija coroutine.close — slēdz noteikto kooperatÄ«vo procesu un visus tā Ā«slēdzamosĀ» mainÄ«gos;

  • lietotāju dati (userdata) var saturēt vērtÄ«bu kopas ar piekļuvi pēc indeksa. Darbam ar tiem ieviestas jaunas funkcijas: lua_newuserdatauv, lua_setiuservalue un lua_getiuservalue;

  • pieejama atvērtā informācija par funkciju parametriem un atgrieztajām vērtÄ«bām;

  • ja for ciklā tiek izmantots vesels skaitlis kā indeksa mainÄ«gais un notiek pārpildīŔanās — cikls tiek pārtraukts;

  • funkcijai string.gmatch pievienots izvēles arguments, kas nosaka atkāpi no virsmas sākuma meklēŔanai;

  • funkcijas, kas automātiski pārvērÅ” virknes par skaitļiem, pārvietotas uz virkņu bibliotēku; to uzvedÄ«ba ir mainÄ«jusies. Piemēram, operācijas "1" + "2" rezultāts tagad ir vesels skaitlis, nevis peldoÅ”s skaitlis;

  • atmiņas pieŔķirÅ”anas funkcijā ir pieļaujama kļūda, samazinot atmiņas bloku;

  • jauns formatēŔanas simbols funkcijā string.format — %p (norādÄ«tājiem);

  • utf8 bibliotēka pieņem simbolu kodus lÄ«dz 2³¹ (norādot Ä«paÅ”u karodziņu, bez tā ir pieļaujami kodu lÄ«dz 0x10FFFF un nav pieļaujami surrogāti);

  • veselās skaitļu konstantes, kas pārsniedz vērtÄ«bu diapazonu, tiek pārvērstas peldoÅ”ajos skaitļos (iepriekÅ” notika bitu nogrieÅ”ana);

  • metamethod __lt vairs netiek izmantots metamethod __le emulēŔanai, ja nepiecieÅ”ams, metamethod __le jādefinē skaidri;

  • goto operatoram etiÄ·ete nevar tikt izveidota, ja paÅ”reizējā redzamÄ«bā jau pastāv etiÄ·ete ar tādu paÅ”u nosaukumu (pat ja tā tika definēta ārējā redzamÄ«bā);

  • metamethod __gc var bÅ«t ne tikai funkcija. Ja mēģinājums izsaukt metodi neizdodas, tiks izsniegts brÄ«dinājums;

  • funkcija print nesauc tostring katram argumentam, bet izmanto savus iekŔējos pārvērtējumus;

  • funkcija io.lines atgriež četras vērtÄ«bas, nevis vienu; lai emulētu veco uzvedÄ«bu, iekļauj izsaukumu aploksnē, ja tu to ievieto kā parametru, izsaucot citu funkciju.

Avots: linux.org.ru

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster