Lua 5.4

Post dujara disvolviĝo, la 29-an de junio, nova versio de la programlingvo Lua, 5.4, estis kviete kaj trankvile publikigita.

Lua estas simpla, interpretita programlingvo, kiu povas esti facile integrita en aplikaĵojn. Pro ĉi tiuj kvalitoj, Lua estas vaste uzata kiel lingvo por etendi aŭ priskribi la agordon de programoj (precipe komputilaj ludoj). Lua estas distribuita sub la MIT-licenco.

La antaŭa versio (5.3.5) estis publikigita la 10-an de julio 2018.

Ĉefaj ŝanĝoj en la nova versio

  • nova generacia rubkolektisto. En la collectgarbage funkcio, la setpause kaj setstepmul parametroj estis malrekomenditaj kaj la pliiga parametro estas rekomendita anstataŭe;

  • nova funkcio por eligi avertajn avertojn kun la kapablo malŝalti ilian ekranon;

  • la nova efektivigo de math.random uzas la xoshiro256** algoritmon anstataŭ la provizita libc kaj pravalorigas la generatoron kun hazarda nombro;

  • konstantaj variabloj;

  • "fermotaj" variabloj estas lokaj konstantoj por kiuj la metodo __close estas ekzekutita kiam forlasas la amplekson;

  • nova funkcio lua_resetthread - malplenigas la stakon kaj fermas ĉiujn "fermitajn" variablojn;

  • nova funkcio coroutine.close - fermas la specifitan korutinon kaj ĉiujn ĝiajn "fermitajn" variablojn;

  • uzantdatenoj povas enhavi aron da valoroj aliritaj per indekso. Novaj funkcioj estis enkondukitaj por labori kun ili: lua_newuserdatauv, lua_setiuservalue kaj lua_getiuservalue;

  • Sencimigaj informoj pri parametroj kaj revenaj valoroj de funkcioj estas disponeblaj;

  • se entjera indekso estas uzata en for buklo kaj superfluo okazas, la buklo finiĝas;

  • nedeviga argumento estis aldonita al la funkcio string.gmatch, specifante la ofseton de la komenco de la ĉeno por serĉi kongruojn;

  • funkcioj por implicite konverti ŝnurojn al nombroj estis movitaj al la kordbiblioteko, kaj ilia konduto ŝanĝiĝis. Ekzemple, la rezulto de la operacio "1" + "2" nun estas entjero prefere ol glitkoma nombro;

  • en la memora atribuo funkcio, eraro povas okazi dum reduktado de memorbloko;

  • nova formata signo en la funkcio string.format - %p (por montriloj);

  • la utf8-biblioteko akceptas signokodojn ĝis 2³¹ (se speciala flago estas specifita, sen ĝi nur kodoj ĝis 0x10FFFF estas permesitaj kaj surogatoj ne estas permesitaj);

  • entjerkonstantoj ekster la intervalo de valoroj estas konvertitaj al flosantaj nombroj (antaŭe okazis bita tondado);

  • la __lt-metametodo ne plu estas uzata por kopii la __le-metametodon, se necese, la __le-metametodo devas esti eksplicite precizigita;

  • etikedo por goto-deklaro ne povas esti kreita se etikedo kun la sama nomo jam ekzistas en la nuna amplekso (eĉ se ĝi estis difinita en la ekstera amplekso);

  • La __gc-metametodo povas esti pli ol nura funkcio. Se provo voki metodon malsukcesas, averto estos presita;

  • la printfunkcio ne vokas tostring por ĉiu argumento, sed uzas siajn proprajn internajn konvertiĝojn;

  • la funkcio io.lines resendas aron de kvar valoroj anstataŭ unu; por imiti la malnovan konduton, enmetu la vokon inter krampoj se vi transdonas ĝin kiel parametron al alia funkciovoko.

fonto: linux.org.ru

Aldoni komenton