Il 30 ottobre è stata rilasciata la versione 0.10.0 dell'interprete da console e della libreria integrata del linguaggio Pluto – un'implementazione alternativa del linguaggio Lua 5.4 con molte modifiche e miglioramenti nella sintassi, nella libreria standard e nell'interprete.
I partecipanti al progetto stanno anche sviluppando la libreria Soup e un semplice sistema di build per progetti in C++ Sun. I progetti sono scritti in C++ e distribuiti con licenza MIT.
Elenco delle modifiche:
- aggiunto il confronto a catena (ad esempio, 1 <= i <= #t);
- aggiunti metodi privati alle classi;
- ora è possibile dichiarare e accedere a campi e metodi privati in qualsiasi parte della classe;
- ora Pluto determina automaticamente se includere o escludere parole chiave incompatibili a seconda del loro utilizzo;
- do può ora essere utilizzato al posto di then e begin;
- le espressioni if non sono più obsolete, ma richiedono l'uso della parola chiave end (ad esempio, print(if a then b else c end));
- l'operatore $define ora richiede un'assegnazione;
- risolta la questione del caricamento dei moduli Lua C su Linux;
- aggiunta la libreria canvas;
- aggiunta la libreria ffi;
- aggiunta la libreria regex (implementazione indipendente nella libreria Soup);
- aggiunta la funzione assert.contains;
- aggiunte le funzioni bigint.eq, bigint.lt e bigint.le;
- aggiunte le funzioni crypto.ripemd160, crypto.exportkey, crypto.importkey e crypto.decompress;
- aggiunte le funzioni string.tohex e string.fromhex;
- sono state aggiunte le funzioni table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues e table.chunk;
- sono state aggiunte le funzioni socket.getpeer, socket.peek, socket.getside, socket.istls e socket.isopen;
- alla funzione string.split è stato aggiunto un argomento opzionale limit;
- per la funzione io.currentdir sono stati aggiunti gli alias io.cwd e io.chdir;
- socket.starttls può ora essere utilizzato nei socket server;
- ottimizzazione di json.encode utilizzando __order;
- nelle funzioni crypto.encrypt, crypto.decrypt e crypto.sign è stata corretta la gestione di una chiave privata RSA non valida.
Fonte: linux.org.ru
