Lua 5.5 Objavljen s Inkrementalnim Sakupljanjem Smeća i Kompaktnim Nizovima


Programski jezik Lua 5.5 uvodi eksplicitne deklaracije globalnih varijabli zajedno s velikim poboljšanjima u upravljanju memorijom i sakupljanju smeća.

Lua, lagani, visokorazinski skriptni jezik dizajniran za ugrađivanje u druge aplikacije, upravo je objavila verziju 5.5.

Jedna od ključnih novosti su eksplicitne deklaracije globalnih varijabli, što omogućava programerima da jasnije definiraju globalne varijable i izbjegnu uobičajene pogreške povezane s implicitnim globalama. Osim toga, varijable u for-petljama sada su samo za čitanje, čime se smanjuju neželjeni nuspojavni efekti u konstrukcijama petlji.

Korištenje memorije za nizove značajno je optimizirano u Lua 5.5. Prema programerima, implementacija kompaktnijih nizova smanjuje memorijski otisak velikih tablica za otprilike 60 posto, poboljšavajući performanse za aplikacije koje intenzivno koriste podatke.

Prikupljanje smeća također je poboljšano. Uvođenje novog načina rada generacijskog prikupljanja smeća poboljšava performanse razdvajanjem objekata koji žive kratko i dugo. Osim toga, glavni ciklusi prikupljanja smeća sada se izvode inkrementalno, smanjujući vrijeme zastoja i poboljšavajući odzivnost u dugotrajno pokrenutim aplikacijama.

Osim toga, vrijednosti s pomičnim zarezom sada se ispisuju s dovoljno decimalnih znamenki kako bi se osiguralo da se mogu ispravno ponovno pročitati. Objavljivanje uključuje i ažuriranja za rukovanje nizovima i UTF-8, poput proširene funkcije utf8.offset koja vraća konačnu poziciju znakova te podrške za vanjske nizove koji koriste memoriju kojom Luaov vlastiti alokator ne upravlja.

Dodano je nekoliko novih pomoćnih funkcija, uključujući luaL_openselectedlibs i luaL_makeseed, koje poboljšavaju sučelja za učitavanje knjižnica i generiranje slučajnih vrijednosti. Osim toga, Lua interpreter (lua.c) sada dinamički učitava podršku za readline kada je dostupna, čime se proširuje interaktivna upotreba.

Statističke binarne datoteke također bilježe poboljšanja; prilikom učitavanja binarnih blokova u memoriju, Lua može ponovo koristiti izvornu memoriju u određenim unutarnjim strukturama. Operacije dump i undump sada ponovno koriste sve nizove, a pomoćni međuspremnik ponovno koristi svoju memoriju pri konstrukciji konačnih nizova, smanjujući alokacije.

Za više informacija o svim promjenama u Lua 5.5, slijedite ovu poveznicu.