Lua 5.4

Két év fejlesztés után, június 29-én csendben és halkan megjelent a Lua programozási nyelv új verziója, az 5.4.

A Lua egy egyszerű, értelmezhető programozási nyelv, amely könnyen integrálható alkalmazásokba. Ezen tulajdonságok miatt a Lua nyelvet széles körben használják a programok (különösen a számítógépes játékok) konfigurációjának kiterjesztésére vagy leírására. A Lua-t az MIT licence alatt forgalmazzák.

Az előző verzió (5.3.5) 10. július 2018-én jelent meg.

Főbb változások az új verzióban

  • új generációs szemétgyűjtő. A collectiongarbage függvényben a setpause és setstepmul paraméterek elavultak, és helyette a növekményes paraméter javasolt;

  • egy új funkció a figyelmeztető jelzések kiadására, amely lehetővé teszi azok megjelenítésének letiltását;

  • a math.random új megvalósítása a xoshiro256** algoritmust használja a biztosított libc helyett, és véletlen számmal inicializálja a generátort;

  • állandó változók;

  • A „bezárandó” változók olyan helyi állandók, amelyeknél a __close metódus végrehajtásra kerül a hatókör elhagyásakor;

  • új függvény lua_resetthread - törli a veremet és bezárja az összes „zárt” változót;

  • új függvény coroutine.close - bezárja a megadott korutint és annak összes „zárt” változóját;

  • A felhasználói adatok tartalmazhatnak egy index által elért értékkészletet. Új funkciókat vezettek be a velük való együttműködéshez: lua_newuserdatauv, lua_setiuservalue és lua_getiuservalue;

  • Hibakeresési információk állnak rendelkezésre a paraméterekről és a függvények visszatérési értékeiről;

  • ha egy for ciklusban egész indexet használunk, és túlcsordulás történik, a ciklus véget ér;

  • egy opcionális argumentum került hozzáadásra a string.gmatch függvényhez, amely megadja az eltolást a karakterlánc elejétől az egyezések kereséséhez;

  • A karakterláncok implicit számokká konvertáló függvényei átkerültek a karakterlánc-könyvtárba, és viselkedésük megváltozott. Például az "1" + "2" művelet eredménye most egy egész szám, nem pedig egy lebegőpontos szám;

  • a memóriafoglalás funkcióban hiba léphet fel a memóriablokk csökkentésekor;

  • új formázási szimbólum a string.format függvényben - %p (mutatókhoz);

  • az utf8 könyvtár 2³¹-ig fogad el karakterkódokat (ha speciális jelző van megadva, enélkül csak a 0x10FFFF-ig terjedő kódok megengedettek, és a helyettesítők nem engedélyezettek);

  • az értéktartományon kívüli egész állandók lebegő számokká alakulnak (korábban bitkivágás történt);

  • a __lt metamódszert már nem használják a __le metametódus emulálására, ha szükséges, a __le metamódszert kifejezetten meg kell adni;

  • nem hozható létre goto utasítás címke, ha az aktuális hatókörben már létezik azonos nevű címke (még akkor sem, ha a külső hatókörben volt definiálva);

  • A __gc metametódus több is lehet, mint egy függvény. Ha egy metódus hívására tett kísérlet sikertelen, a rendszer figyelmeztetést nyomtat;

  • a print függvény nem hívja meg a tostringet minden argumentumhoz, hanem a saját belső konverzióit használja;

  • az io.lines függvény egy helyett négy értéket ad vissza; a régi viselkedés emulálásához tegye zárójelbe a hívást, ha paraméterként adja át egy másik függvényhívásnak.

Forrás: linux.org.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster