Lua 5.4

Pärast kaheaastast arendustööd, 29. juunil, tuli vaikselt ja vaikselt välja Lua programmeerimiskeele uus versioon 5.4.

Lua on lihtne, tõlgendatav programmeerimiskeel, mida saab hõlpsasti rakendustesse integreerida. Nende omaduste tõttu kasutatakse Lua keelt laialdaselt programmide (eriti arvutimängude) konfiguratsiooni laiendamiseks või kirjeldamiseks. Lua levitatakse MIT-i litsentsi alusel.

Eelmine versioon (5.3.5) ilmus 10. juulil 2018.

Peamised muudatused uues versioonis

  • uue põlvkonna prügivedaja. Funktsioonis collectiongarbage on parameetrid setpause ja setstepmul aegunud ning selle asemel on soovitatav kasutada inkrementaalset parameetrit;

  • uus funktsioon hoiatushoiatuste väljastamiseks koos võimalusega nende kuvamine keelata;

  • math.random uus teostus kasutab antud libc asemel algoritmi xoshiro256** ja initsialiseerib generaatori juhusliku arvuga;

  • konstantsed muutujad;

  • "Suletavad" muutujad on lokaalsed konstandid, mille puhul käivitatakse ulatusest lahkumisel meetod __close;

  • uus funktsioon lua_resetthread - tühjendab pinu ja sulgeb kõik "suletud" muutujad;

  • uus funktsioon coroutine.close - sulgeb määratud korutiini ja kõik selle "suletud" muutujad;

  • kasutajaandmed võivad sisaldada väärtuste komplekti, millele indeks ligi pääseb. Nendega töötamiseks on kasutusele võetud uued funktsioonid: lua_newuserdatauv, lua_setiuservalue ja lua_getiuservalue;

  • Saadaval on silumisinfo parameetrite ja funktsioonide tagastamisväärtuste kohta;

  • kui for-tsüklis kasutatakse täisarvu indeksit ja tekib ületäitumine, siis tsükkel lõpeb;

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

  • funktsioonid stringide kaudseks teisendamiseks numbriteks on teisaldatud stringiteeki ja nende käitumine on muutunud. Näiteks tehte "1" + "2" tulemus on nüüd pigem täisarv kui ujukomaarv;

  • mälu eraldamise funktsioonis võib mäluploki vähendamisel tekkida tõrge;

  • uus vormingumärk funktsioonis string.format - %p (osutite jaoks);

  • utf8 teek aktsepteerib märgikoode kuni 2³¹ (kui on määratud spetsiaalne lipp, ilma selleta on lubatud ainult koodid kuni 0x10FFFF ja surrogaadid pole lubatud);

  • täisarvu konstandid väljaspool väärtuste vahemikku teisendatakse ujuvateks numbriteks (varem toimus bitilõikamine);

  • metameetodit __lt ei kasutata enam metameetodi __le emuleerimiseks, vajadusel tuleb metameetod __le selgelt määratleda;

  • goto-lause silti ei saa luua, kui sama nimega silt on praeguses ulatuses juba olemas (isegi kui see on määratletud välises ulatuses);

  • Metameetod __gc võib olla midagi enamat kui lihtsalt funktsioon. Kui meetodi kutsumise katse ebaõnnestub, prinditakse hoiatus;

  • printfunktsioon ei kutsu iga argumendi jaoks tostringi, vaid kasutab oma sisemisi teisendusi;

  • Funktsioon io.lines tagastab ühe väärtuse asemel nelja väärtuse komplekti; vana käitumise jäljendamiseks lisage kõne sulgudesse, kui edastate selle parameetrina mõnele teisele funktsioonikutsele.

Allikas: linux.org.ru

Lisa kommentaar