Després de cinc anys de desenvolupament, fa pocs dies va ser presentat el llançament de la nova versió de Lua 5.4, El qual és un llenguatge de programació de scripting ràpid i compacte que s'usa àmpliament com un llenguatge incorporat.
Lua combina sintaxi processal simple amb potents capacitats de descripció de dades mitjançant l'ús de matrius associatives i semàntica de llenguatge extensible. Lua utilitza l'escriptura dinàmica; les construccions de llenguatge es converteixen en bytecode que s'executa sobre una màquina virtual de registre amb un recol·lector d'escombraries automàtic.
Què hi ha de nou en Lua 5.4?
En aquesta nova versio de el llenguatge, podrem trobar que es destaca una nova manera d'operació de l'recol·lector d'escombraries, Que complementa la manera incremental de recollida d'escombraries disponible anteriorment.
El nou mode implica un llançament més freqüent d'un rastreig més curt, Que cobreix només els objectes creats recentment. Només es realitza un rastreig complet de tots els objectes si, després d'un breu rastreig, no va ser possible aconseguir els indicadors de consum de memòria desitjats. Aquest enfocament permet aconseguir un major rendiment i reduir el consum de memòria en una situació d'emmagatzematge d'una gran quantitat d'objectes que viuen per poc temps.
Un altre dels canvis que es destaca de Lua 5.4 és la capacitat de definir constants definides amb l'atribut «const». Aquestes variables només es poden assignar una vegada i després de la inicialització ja no es poden canviar.
A més que també es destaca el nou suport per a variables «To be closed», que s'assignen utilitzant l'atribut «closed» i s'assemblen a variables locals constants (Amb l'atribut const), que difereixen d'elles en què el valor està tancat (es diu a l'mètode «__close») en qualsevol sortida de l'àrea visibilitat.
El tipus de «Userdata», que proporciona la capacitat d'emmagatzemar qualsevol dada C en variables Lua (representa un bloc de dades a la memòria o conté un punter C), ara pot contenir diversos valors (Tenir diverses metatablas).
D'altra banda, es proposa en Lua 5.4 una nova semàntica per enumerar sencers en bucles »for«. El nombre d'iteracions es calcula abans de l'inici de l'cicle, el que evita el desbordament de la variable i el bucle. Si el valor inicial és més gran que el valor límit, es genera un error.
S'ha afegit un sistema d'advertència, que es determina utilitzant l'expressió d'advertència i, a diferència dels errors, no afecta l'execució posterior de el programa.
Dels altres canvis que es destaquen:
- S'ha afegit informació de depuració sobre arguments de funció i valors retornats en l'operador «return».
- Les funcions de convertir cadenes en nombres s'han mogut a la biblioteca de «cadenes».
- La crida a la funció d'assignació de memòria ara pot fallar si es redueix la mida de l'bloc de memòria.
- Es va agregar suport per a un nou especificador de format '% p' a la funció 'string.format'
- La biblioteca utf8 proporciona suport per a codis de caràcters amb nombres de fins a 2 ^ 31.
- S'ha afegit un nou argument opcional 'init' a la funció 'string.gmatch', que determina des de quina posició començar la recerca (per defecte, començant amb 1 caràcter).
- Es van agregar noves funcions 'lua_resetthread' (restableix el fil, esborra tota la pila de trucades i tanca totes les variables «a tancar») i 'coroutine.close'
Com instal·lar Lua a Linux?
A causa de la seva gran popularitat de l'llenguatge el seu intèrpret es troba en la majoria de les distribucions de Linux.
Per a els que són usuaris de Debian, Ubuntu, Linux Mint o qualsevol sistema derivat d'aquests, Només hem d'obrir una terminal i executar-hi la següent comanda:
sudo apt install lua5.4
si són usuaris d'Arch Linux, Manjaro, Antergos o qualsevol distribució derivada d'Arch Linux, Podem instal·lar l'intèrpret des dels repositoris de AUR, per a això només hem de teclejar:
yay -S lua
Mentre que per els que són usuaris de CentOS, RHEL, Fedora o qualsevol distribució derivada d'aquestes, el podem instal·lar amb:
sudo dnf install lua
I llest amb això ja quedo instal·lat.