Lua 5.4

PĂ€rast kahte aastat arendustööd ilmus 29. juunil vaikselt ja mĂ€rkamatult uus versioon programmeerimiskeelest Lua — 5.4.

Lua on lihtne tÔlgitav programmeerimiskeel, mida on lihtne rakendustesse integreerida. TÀnu nendele omadustele kasutatakse Lua laialdaselt laiendamise vÔi programmide konfiguratsiooni kirjeldamise keele formaadis (eriti arvutimÀngudes). Lua levib MIT litsentsi alusel.

Eelmine versioon (5.3.5) ilmus 10. juulil 2018.

Uue versiooni peamised muudatused

  • uus pĂ”lvkondade pĂ”hine rĂ€mpsu koristaja (generational). Funktsioonis collectgarbage on parameetrid setpause ja setstepmul kuulutatud vananenuks, nende asemel on soovitatav kasutada parameetrit incremental;

  • uus funktsioon hoiatuste andmiseks warn koos vĂ”imalusega nende kuvamine vĂ€lja lĂŒlitada;

  • uus ĂŒleminek math.random kasutab algoritmi xoshiro256** asemel libc ja initsialiseerib generaatori juhusliku arvuga;

  • konstandid (constant variables);

  • «sulgur» (to-be-closed) muutujad — lokaalsed konstantid, mille jaoks tĂ€idetakse __close meetod, kui vĂ€ljutakse nĂ€htavusala;

  • uus funktsioon lua_resetthread — puhastab kuhja ja sulgeb kĂ”ik «sulgur» muutujad;

  • uus funktsioon coroutine.close — sulgeb mÀÀratud koostööprogrammi ja kĂ”ik tema «sulgur» muutujad;

  • kasutajaandmed (userdata) vĂ”ivad sisaldada vÀÀrtuste kogumit, millele pÀÀseb juurde indeksi alusel. Nende haldamiseks on sisse viidud uued funktsioonid: lua_newuserdatauv, lua_setiuservalue ja lua_getiuservalue;

  • saadaval on silumise teave funktsioonide parameetrite ja tagastatavate vÀÀrtuste kohta;

  • kui tsĂŒklis for kasutatakse tĂ€isarvulist indeksi ja toimub ĂŒlevool — tsĂŒkkel lĂ”petatakse;

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

  • stringide automaatne konverteerimine numbriteks on viidud stringide teeki, nende kĂ€itumine on muutunud. NĂ€iteks "1" + "2" tulemuseks on nĂŒĂŒd tĂ€isarv, mitte ujuv number;

  • mĂ€lu eraldamise funktsioonis on lubatud viga mĂ€luploki vĂ€hendamisel;

  • uus vormindussĂŒmbol funktsioonis string.format — %p (nĂ€idikute jaoks);

  • utf8 teek aktsepteerib sĂŒmbolikoodide ulatust kuni 2ÂłÂč (spetsiaalse lipu mÀÀramisel, muidu lubatakse ainult koode kuni 0x10FFFF ja ei lubata surrogaate);

  • TĂ€isarvud, mis ĂŒletavad vÀÀrtuste vahemikku, muudetakse ujuvpunkti arvudeks (varem toimus bititamine);

  • Metameetod __lt ei ole enam vajalik metameetodi __le emuleerimiseks, vajadusel peab metameetod __le olema selgesĂ”naliselt mÀÀratud;

  • Goto operaatori sild ei saa olla loodud, kui praeguses ulatuses eksisteerib juba sama nimega silt (isegi kui see oli mÀÀratud vĂ€listes ulatustes);

  • Metameetod __gc ei pruugi olla ainult funktsioon. Kui meetodi kutsumine ebaĂ”nnestub, kuvatakse 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, pane kutse sulgudesse, kui vajad seda teise funktsiooni parameetrina.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster