30 октября состоялся выпуск 0.10.0 консольного интерпретатора и встраиваемой библиотеки языка Pluto – альтернативной реализации языка Lua 5.4 со множеством изменений и улучшений в синтаксисе, стандартной библиотеке и интерпретаторе.
Участниками проекта также разрабатывается библиотека Soup и простая система сборки проектов на C++ Sun. Проекты написаны на языке C++ и раcпространяются по лицензии MIT.
Список изменений:
- добавлено цепочечное сравнение (например, 1 <= i <= #t);
- в классы добавлены приватные методы;
- приватные поля и методы теперь можно объявлять и обращаться к ним в любом месте класса;
- теперь Pluto автоматически определяет, следует ли включать или отключать несовместимые ключевые слова в зависимости от их использования;
- do теперь можно использовать вместо then и begin;
- выражения if больше не являются устаревшими, но требуют использования ключевого слова end (например, print(if a then b else c end));
- оператор $define теперь требует присваивания;
- исправлена загрузка модулей Lua C в Linux;
- добавлена библиотека canvas;
- добавлена библиотека ffi;
- добавлена библиотека regex (независимая реализация в библиотеке Soup);
- добавлена функция assert.contains;
- добавлены функции bigint.eq, bigint.lt и bigint.le;
- добавлены функции crypto.ripemd160, crypto.exportkey, crypto.importkey и crypto.decompress;
- добавлены функции string.tohex и string.fromhex;
- добавлены функции table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues и table.chunk;
- добавлены функции socket.getpeer, socket.peek, socket.getside, socket.istls и socket.isopen;
- в функцию string.split добавлен необязательный аргумент limit;
- для функции io.currentdir добавлены псевдонимы io.cwd и io.chdir;
- socket.starttls теперь можно использовать в серверных сокетах;
- оптимизация json.encode с использованием __order;
- в функциях crypto.encrypt, crypto.decrypt и crypto.sign исправлена обработка недействительного закрытого ключа RSA.
Источник: linux.org.ru
