Lua 5.4

Pärast kahte aastat arendust jõudis 29. juunil vaikselt ja märkamatult välja uus Lua programmeerimiskeele versioon — 5.4.

Lua on lihtne tõlgitud programmeerimiskeel, mis integreerub hõlpsalt rakendustesse. Nende omaduste tõttu kasutatakse Lua laialdaselt laiendamise või konfiguratsioonide kirjeldamise keeleks (eriti arvutimängudes). Lua levitatakse MIT litsentsi alusel.

Eelmine versioon (5.3.5) ilmus 10. juulil 2018.

Uue versiooni peamised muudatused

  • uus põlvkondade põhine jäätmete kogumise süsteem (generational). Funktsioonis collectgarbage on parameetrid setpause ja setstepmul kuulutatud aegunuks, nende asemel soovitatakse kasutada parameetrit incremental;

  • uus hoiatuste väljastamise funktsioon warn koos võimalusega nende kuvamine välja lülitada;

  • uus rakendamine math.random kasutab algoritmi xoshiro256** asemel libc poolt pakutud ning initsialiseerib generaatori juhusliku numbriga;

  • konstantmuutujad (constant variables);

  • „sulgevad” (to-be-closed) muutujad — lokaalsed konstantmuutujad, mille jaoks täidetakse meetod __close, kui nad lähevad välja ulatusest;

  • uus funktsioon lua_resetthread — puhastab virna ja täidab kõikide „sulgevate” muutujate sulgemise.

  • uus funktsioon coroutine.close - sulgeb määratud kooperatiivi ja kõik selle „sulgedavad“ muutujad;

  • kasutajandmed (userdata) võivad sisaldada väärtuste kogumit, millele pääseb juurde indeksi kaudu. Nende haldamiseks on sisse viidud uued funktsioonid: lua_newuserdatauv, lua_setiuservalue ja lua_getiuservalue;

  • saadaval on silumisteave funktsioonide parameetrite ja tagastatud väärtuste kohta;

  • kui for-tsüklis kasutatakse täisarvulist indeksit ja toimub ülevool - tsükkel lõpetatakse;

  • funktsiooni string.gmatch on lisatud valikuline argument, mis määrab nihke stringi algusest sobituste otsimiseks;

  • stringide arvuks teisendamise funktsioonid on viidud stringide teeki, nende käitumine on muutunud. Näiteks, operatsiooni "1" + "2" tulemus on nüüd täisarv, mitte komakohtadega number;

  • mälu eraldamise funktsioonides võib esineda viga mälubloki vähendamisel;

  • uus vormindusmärk funktsioonis string.format - %p (näidikutele);

  • utf8 teek aktsepteerib sümbolite koode kuni 2³¹ (erilise lipu määramisel, ilma selleta lubatakse ainult koode kuni 0x10FFFF ja sünergad ei ole lubatud);

  • Täisarvukonstandid, mis ületavad väärtuste vahemikku, muudetakse ujukomaarvudeks (varem toimus bitilõikamine);

  • Metaethod __lt ei kasutata enam metaethod __le emuleerimiseks, vajadusel tuleb metaethod __le määrata selgelt;

  • Goto operaatori märki ei saa luua, kui praeguses ulatuses on juba olemas sama nimega märk (isegi kui see on määratud välistes ulatuses);

  • Metaethod __gc ei pruugi olla ainult funktsioon. Kui meetodi kutsumine ebaõnnestub, antakse hoiatus;

  • Funktsioon print ei kutsu tostring-i iga argumendi jaoks, vaid kasutab oma sisemisi teisendusi;

  • Funktsioon io.lines tagastab neli väärtust ühe asemel, et emuleerida vana käitumist, asetage kõne sulgudesse, kui sisestate selle teise funktsiooni parameetrina.

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster