Lua 5.4

Po dvoch rokoch vývoja, 29. júna tichúčko a bez povšimnutia vyšla nová verzia programovacieho jazyka Lua — 5.4.

Lua je jednoduchý interpretovaný programovací jazyk, ktorý sa ľahko zabudováva do aplikácií. Vďaka týmto vlastnostiam sa Lua široko využíva ako jazyk pre rozšírenia alebo na opis konfigurácie programov (najmä počítačových hier). Lua je dostupná pod licenciou MIT.

Predchádzajúca verzia (5.3.5) bola vydaná 10. júla 2018.

Hlavné zmeny v novej verzii

  • nový generátor odpadkov na základe generácií. V funkcii collectgarbage sú parametre setpause a setstepmul označené ako zastarané, namiesto nich sa odporúča používať parameter incremental;

  • nová funkcia na vydávanie varovaní warn s možnosťou vypnutia ich zobrazenia;

  • nová implementácia math.random používa algoritmus xoshiro256** namiesto dodávaného libc a inicializuje generátor náhodným číslom;

  • konštanty (constant variables);

  • »zatvárateľné« (to-be-closed) premenné — lokálne konštanty, pre ktoré sa pri výstupe z rozsahu vykonáva metóda __close;

  • nová funkcia lua_resetthread — vyčistí zásobník a vykoná uzavretie všetkých „zatvárateľných“ premenných;

  • nová funkcia coroutine.close — uzatvára určenú súbežnú úlohu a všetky jej „zatvárateľné“ premenné;

  • užívateľské dáta (userdata) môžu obsahovať súbor hodnôt s prístupom podľa indexu. Pre prácu s nimi boli zavedené nové funkcie: lua_newuserdatauv, lua_setiuservalue a lua_getiuservalue;

  • je dostupná ladická informácia o parametroch a návratových hodnotách funkcií;

  • ak sa v cykle na počítadlo for používa celočíselný index a dôjde k pretečeniu — cyklus sa ukončí;

  • do funkcie string.gmatch bol pridaný voliteľný argument, ktorý určuje posun od začiatku reťazca na vyhľadávanie zhod;

  • funkcie implicitnej konverzie reťazcov na čísla boli presunuté do knižnice reťazcov, zmenilo sa ich správanie. Napríklad výsledok operácie "1" + "2" je teraz celé číslo, a nie číslo s pohyblivou desatinnou čiarkou;

  • v funkcii na pridelenie pamäte môže nastať chyba pri zmenšovaní bloku pamäte;

  • nový formátovací symbol vo funkcii string.format — %p (pre ukazovatele);

  • knižnica utf8 prijíma kódy znakov až do 2³¹ (pri uvedení špeciálnej flagy, inak sú povolené iba kódy do 0x10FFFF a nie sú povolené surrogate);

  • Číselné konstanty, ktoré presahujú rozsah hodnôt, sa prevádzajú na plávajúce čísla (predtým došlo k bitovému orezaniu);

  • Metóda __lt sa už nepoužíva na emuláciu metódy __le, ak je to potrebné, metóda __le musí byť zadaná výslovne;

  • Štítok pre príkaz goto nemôže byť vytvorený, ak už v aktuálnom rozsahu existuje štítok s rovnakým menom (aj keď bol definovaný vo vonkajšej oblasti);

  • Metóda __gc nemusí byť len funkciou. Ak sa pokus o zavolanie metódy nepodarí, zobrazí sa varovanie;

  • Funkcia print nevolá tostring pre každý argument, ale používa svoje interné konverzie;

  • Funkcia io.lines vracia sadu štyroch hodnôt namiesto jednej, na emuláciu starého správania zabaľte volanie do zátvoriek, ak ho predávate ako parameter pri volaní inej funkcie.

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster