No dia 30 de outubro, foi lançado o interpretador de console 0.10.0 e a biblioteca embutida da linguagem Pluto – uma implementação alternativa da linguagem Lua 5.4 com muitas mudanças e melhorias na sintaxe, biblioteca padrão e interpretador.
Os participantes do projeto também estão desenvolvendo a biblioteca Soup e um sistema simples de construção de projetos em C++ Sun. Os projetos são escritos na linguagem C++ e distribuídos sob a licença MIT.
Lista de mudanças:
- adicionado comparação encadeada (por exemplo, 1 <= i <= #t);
- métodos privados foram adicionados às classes;
- agora é possível declarar e acessar campos e métodos privados em qualquer lugar da classe;
- Pluto agora determina automaticamente se deve incluir ou desativar palavras-chave incompatíveis, dependendo do seu uso;
- do agora pode ser usado em vez de then e begin;
- expressões if não são mais obsoletas, mas requerem a utilização da palavra-chave end (por exemplo, print(if a then b else c end));
- o operador $define agora requer atribuição;
- corrigido o carregamento de módulos Lua C no Linux;
- biblioteca canvas adicionada;
- biblioteca ffi adicionada;
- biblioteca regex adicionada (implementação independente na biblioteca Soup);
- função assert.contains adicionada;
- as funções bigint.eq, bigint.lt e bigint.le foram adicionadas;
- as funções crypto.ripemd160, crypto.exportkey, crypto.importkey e crypto.decompress foram adicionadas;
- as funções string.tohex e string.fromhex foram adicionadas;
- as funções table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues e table.chunk foram adicionadas;
- as funções socket.getpeer, socket.peek, socket.getside, socket.istls e socket.isopen foram adicionadas;
- um argumento opcional limit foi adicionado à função string.split;
- para a função io.currentdir, foram adicionados os apelidos io.cwd e io.chdir;
- socket.starttls agora pode ser usado em soquetes de servidor;
- otimização do json.encode usando __order;
- corrigida a manipulação de chave privada RSA inválida nas funções crypto.encrypt, crypto.decrypt e crypto.sign.
Fonte: linux.org.ru
