El 30 de octubre se lanzó la versión 0.10.0 del intérprete de consola y la biblioteca embebida del lenguaje. Pluto – una implementación alternativa del lenguaje Lua 5.4 con numerosas modificaciones y mejoras en la sintaxis, la biblioteca estándar y el intérprete.
Los participantes del proyecto también están desarrollando la biblioteca Soup y un sistema simple de compilación de proyectos en C++. Sun. Los proyectos están escritos en C++ y se distribuyen bajo la licencia MIT.
Lista de cambios:
- se agregó comparación encadenada (por ejemplo, 1 <= i <= #t);
- se añadieron métodos privados a las clases;
- los campos y métodos privados ahora se pueden declarar y acceder en cualquier lugar de la clase;
- ahora Pluto determina automáticamente si incluir o excluir palabras clave incompatibles según su uso;
- do ahora se puede usar en lugar de then y begin;
- las expresiones if ya no están obsoletas, pero requieren el uso de la palabra clave end (por ejemplo, print(if a then b else c end));
- el operador $define ahora requiere una asignación;
- se solucionó la carga de módulos Lua C en Linux;
- se añadió la biblioteca canvas;
- se añadió la biblioteca ffi;
- se añadió la biblioteca regex (implementación independiente en la biblioteca Soup);
- se añadió la función assert.contains;
- se añadieron las funciones bigint.eq, bigint.lt y bigint.le;
- se añadieron las funciones crypto.ripemd160, crypto.exportkey, crypto.importkey y crypto.decompress;
- se añadieron las funciones string.tohex y string.fromhex;
- se añadieron las funciones table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues y table.chunk;
- se añadieron las funciones socket.getpeer, socket.peek, socket.getside, socket.istls y socket.isopen;
- se añadió un argumento opcional limit a la función string.split;
- se añaden alias io.cwd y io.chdir para la función io.currentdir;
- socket.starttls ahora se puede usar en sockets de servidor;
- optimización de json.encode utilizando __order;
- se corrigió el manejo de una clave privada RSA no válida en las funciones crypto.encrypt, crypto.decrypt y crypto.sign.
Fuente: linux.org.ru
