Após cinco anos de desenvolvimento, alguns dias atrás foi apresentado o lançamento da nova versão do Lua 5.4, que é uma linguagem de programação de script compacta e rápida amplamente usada como uma linguagem incorporada.
Lua combina sintaxe procedural simples com recursos poderosos de descrição de dados por meio do uso de matrizes associativas e semântica de linguagem extensível. Lua usa escrita dinâmica; construções de linguagem são convertidas em bytecode que é executado em uma máquina virtual de log com um coletor de lixo automático.
O que há de novo na Lua 5.4?
Nesta nova versão da linguagem, podemos descobrir que ela se destaca um novo modo de operação do coletor de lixo, que complementa o modo de coleta de lixo incremental disponível anteriormente.
O novo jeito implica um lançamento mais frequente de um rastreamento mais curto, que cobre apenas objetos criados recentemente. Um rastreamento completo de todos os objetos só é executado se, após um rastreamento curto, os indicadores de consumo de memória desejados não puderem ser alcançados. Esta abordagem permite maior desempenho e menor consumo de memória em uma situação de armazenamento de um grande número de objetos que vivem por pouco tempo.
Outra mudança que se destaca em Lua 5.4 é a capacidade de definir constantes definidas com o atributo "const". Essas variáveis só podem ser atribuídas uma vez e, após a inicialização, não podem mais ser alteradas.
Além de que o novo suporte para variáveis também é destacado «A ser fechado», que são atribuídos usando o atributo «fechado» e assemelham-se a variáveis locais constantes (com o atributo const), que difere deles pelo fato de que o valor é fechado (o método "__close" é chamado) em qualquer saída da área de visibilidade.
O tipo de "Dados do usuário", que fornece a capacidade de armazenar quaisquer dados C em variáveis Lua (representa um bloco de dados na memória ou contém um ponteiro C), agora pode conter vários valores (tem várias meta-tabelas).
Além disso, uma nova semântica é proposta em Lua 5.4 para enumerar inteiros em »for« loops. O número de iterações é calculado antes do início do loop, o que evita o estouro da variável e o loop. Se o valor inicial for maior que o valor limite, é gerado um erro.
Um sistema de aviso foi adicionado, que é determinado usando a expressão de aviso e, ao contrário dos erros, não afeta a execução subsequente do programa.
Das outras mudanças que se destacam:
- As informações de depuração nos argumentos da função e nos valores de retorno foram adicionadas ao operador "return".
- As funções de conversão de strings em números foram movidas para a biblioteca "strings".
- A chamada da função de alocação de memória agora pode falhar se o tamanho do bloco de memória for reduzido.
- Adicionado suporte para um novo especificador de formato '% p' à função 'string.format'
- A biblioteca utf8 oferece suporte para códigos de caracteres com números de até 2 ^ 31.
- Um novo argumento opcional 'init' foi adicionado à função 'string.gmatch', que determina de qual posição iniciar a pesquisa (por padrão, começando com 1 caractere).
- Adicionadas novas funções 'lua_resetthread' (redefinir o thread, limpar toda a pilha de chamadas e fechar todas as variáveis "para fechar") e 'coroutine.close'
Como instalar Lua no Linux?
Devido à sua grande popularidade do idioma seu interpretador é encontrado na maioria das distribuições Linux.
Pára aqueles que são usuários de Debian, Ubuntu, Linux Mint ou qualquer sistema derivado destes, só temos que abrir um terminal e executar o seguinte comando nele:
sudo apt install lua5.4
Sim são usuários do Arch Linux, Manjaro, Antergos ou qualquer distribuição derivada do Arch Linux, podemos instalar o intérprete dos repositórios AUR, para isso só temos que digitar:
yay -S lua
Enquanto por Aqueles que são usuários do CentOS, RHEL, Fedora ou qualquer distribuição derivada destes, podemos instalá-lo com:
sudo dnf install lua
E pronto com isso, já estou instalado.