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