Pluto 0.10.0

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.
>>> Подробности
