Elérhető a Lua 5.5 programozási nyelv.

Öt év fejlesztés után megjelent a Lua 5.5, egy gyors és kompakt szkriptnyelv, amely széles körben elterjedt mint beágyazott nyelv a konfigurációk meghatározására és kiterjesztések írására. A Lua interpreterének kódja C nyelven íródott, és MIT licenc alatt terjesztik.

A Lua egyszerű procedurális szintaxist ötvöz az adatok leírásának lehetőségeivel, asszociatív tömbök és a nyelv bővíthető szemantikájának használatával. A Lua dinamikus típusú, és a nyelvi konstrukciók byte-kódra alakulnak, amely egy regiszter alapú virtuális gépen fut, automatikus szemétgyűjtéssel. Az interpreter könyvtár formájában van elkészítve, és integrálható C és C++ nyelvű projektekbe.

Főbb újítások:

  • A szemétgyűjtési műveletek többsége inkrementális üzemmódban zajlik, amely lehetővé teszi, hogy a szemétgyűjtési ciklus külön lépésekre legyen bontva, váltakozva a program végrehajtásával, így elkerülhetők a hosszan tartó leállások a memória nagy számú objektummal bíró alkalmazások esetén.
  • Javasolt egy kompakt tömbimplementáció, amely 60%-kal kevesebb memóriát igényel az azonos típusú adatokból álló tömbök esetén (a megtakarítás azért érhető el, mert a típusinformációt nem minden egyes elemhez, hanem az elemek csoportjához tárolják).
  • Lehetőséget kapott a globális változók explicit deklarálására bármely kódrészletben a 'global' kulcsszó segítségével. Ha a kódrészletben 'global' kulcsszóval rendelkező kifejezéseket adunk meg, minden változónak kötelezően egyértelműen kell deklarálva lennie. Ha a 'global' deklaráció hiányzik, akkor egy implicit 'global *' kifejezés kerül érvényesítésre, amely fenntartja a régi viselkedést, és minden változót globálisnak tekint. Ezenkívül bevezetésre került a 'global<const> *' kifejezés, amely alatt minden implicit módon definiált globális változó csak olvasható módban válik elérhetővé. X = 1 — Rendben, X — globális változó, a régi alapértelmezett viselkedés. do global Y — Y változó globális deklarálása, az összes többi változónak a blokkban kötelezően egyértelműen kell deklarálva lennie Y = 1 — Rendben, Y változó korábban definiálva van X = 1 — Hiba, X változó nem definiált end X = 2 — Rendben, a global blokk alól a régi viselkedés érvényes.
  • A ciklusokban használt vezérlőváltozók mostantól csak olvashatók, és nem módosíthatók a ciklus törzsében. Például az i változó, amelyet a „for i = 1, 5 do” ciklusban deklaráltak, nem módosítható a ciklus törzsében.
  • A lebegőpontos számok print funkcióval történő kiíratásakor mostantól elegendő számú számjegy kerül megjelenítésre a karakterláncból az eredeti reprezentációba történő korrekt visszaalakításhoz.
  • Növelték a táblakonstruktorok fészkelt szintjeinek maximális számát.
  • A table.create(nseq, nrec) funkció hozzáadásra került üres tábla létrehozásához és a megadott számú elemhez való memória előkészítéséhez.
  • Az utf8.offset funkció biztosítja, hogy ne csak a karakter kezdete előtti bájtpozíció, hanem a karakter vége pozíciója is vissza legyen adva.
  • Hozzáadva a külső karakterláncok létrehozásának támogatása, amelyek memóriában helyezkednek el, és nem a Lua szemétgyűjtő által kezeltek.
  • A luaL_openselectedlibs funkció hozzáadásra került a választott könyvtár betöltéséhez, valamint a luaL_makeseed funkció, amely seed-értéket generál a lua_newstate funkcióhoz.
  • A lua.c fájlban biztosított a ‘readline’ könyvtár dinamikus betöltése, amennyiben elérhető (ha a könyvtár a rendszerben megtalálható, akkor betöltődik, és a sorok szerkesztésére szolgáló funkciók elérhetők).
  • Bevezettek egy optimalizálást a memória megtakarítása érdekében a már előre lefordított bájtód betöltésekor — a Lua mostantól újra fel tudja használni a memóriát egyes belső struktúrákban a duplikált bájtód betöltésekor anélkül, hogy duplikátumokat hozna létre.
  • Biztosították az összes karakterlánc újrahasználatát a „dump” és „undump” műveletek során.
  • A segédpufferekben biztosították a pufferek újrahasználatát (másolás nélkül új pufferekbe) a végső karakterlánc létrehozásakor.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster