Después de cinco años de desarrollo, hace pocos días fue presentado el lanzamiento de la nueva version de Lua 5.4, el cual es un lenguaje de programación de scripting rápido y compacto que se usa ampliamente como un lenguaje incorporado.
Lua combina sintaxis procesal simple con potentes capacidades de descripción de datos mediante el uso de matrices asociativas y semántica de lenguaje extensible. Lua utiliza la escritura dinámica; las construcciones de lenguaje se convierten en bytecode que se ejecuta sobre una máquina virtual de registro con un recolector de basura automático.
¿Qué hay de nuevo en Lua 5.4 ?
En esta nueva version del lenguaje, podremos encontrar que se destaca un nuevo modo de operación del recolector de basura, que complementa el modo incremental de recolección de basura disponible anteriormente.
El nuevo modo implica un lanzamiento más frecuente de un rastreo más corto, que cubre solo los objetos creados recientemente. Solo se realiza un rastreo completo de todos los objetos si, después de un breve rastreo, no fue posible lograr los indicadores de consumo de memoria deseados. Este enfoque permite lograr un mayor rendimiento y reducir el consumo de memoria en una situación de almacenamiento de una gran cantidad de objetos que viven por poco tiempo.
Otro de los cambios que se destaca de Lua 5.4 es la capacidad de definir constantes definidas con el atributo «const». Dichas variables solo se pueden asignar una vez y después de la inicialización ya no se pueden cambiar.
Además que también se destaca el nuevo soporte para variables «to be closed», que se asignan usando el atributo «closed» y se asemejan a variables locales constantes (con el atributo const), que difieren de ellas en que el valor está cerrado (se llama al método «__close») en cualquier salida del área visibilidad.
El tipo de «userdata», que proporciona la capacidad de almacenar cualquier dato C en variables Lua (representa un bloque de datos en la memoria o contiene un puntero C), ahora puede contener varios valores (tener varias metatablas).
Por otra parte, se propone en Lua 5.4 una nueva semántica para enumerar enteros en bucles » for «. El número de iteraciones se calcula antes del inicio del ciclo, lo que evita el desbordamiento de la variable y el bucle. Si el valor inicial es mayor que el valor límite, se genera un error.
Se ha agregado un sistema de advertencia, que se determina utilizando la expresión de advertencia y, a diferencia de los errores, no afecta la ejecución posterior del programa.
De los demás cambios que se destacan:
- Se ha agregado información de depuración sobre argumentos de función y valores devueltos en el operador «return».
- Las funciones de convertir cadenas en números se han movido a la biblioteca de «cadenas».
- La llamada a la función de asignación de memoria ahora puede fallar si se reduce el tamaño del bloque de memoria.
- Se agregó soporte para un nuevo especificador de formato ‘% p’ a la función ‘string.format’
- La biblioteca utf8 proporciona soporte para códigos de caracteres con números de hasta 2 ^ 31.
- Se ha agregado un nuevo argumento opcional ‘init’ a la función ‘string.gmatch’, que determina desde qué posición comenzar la búsqueda (por defecto, comenzando con 1 carácter).
- Se agregaron nuevas funciones ‘lua_resetthread’ (restablece el hilo, borra toda la pila de llamadas y cierra todas las variables «a cerrar») y ‘coroutine.close’
¿Cómo instalar Lua en Linux?
Debido a su gran popularidad del lenguaje su intérprete se encuentra en la mayoría de las distribuciones de Linux.
Para los que son usuarios de Debian, Ubuntu, Linux Mint o cualquier sistema derivado de estos, solamente debemos de abrir una terminal y ejecutar en ella el siguiente comando:
sudo apt install lua5.4
Si son usuarios de Arch Linux, Manjaro, Antergos o cualquier distribución derivada de Arch Linux, podemos instalar el intérprete desde los repositorios de AUR, para ello solamente debemos de teclear:
yay -S lua
Mientras que para los que son usuarios de CentOS, RHEL, Fedora o cualquier distribución derivada de estas, lo podemos instalar con:
sudo dnf install lua
Y listo con ello ya quedo instalado.