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