На 30 октомври беше издадена версия 0.10.0 на конзолния интерпретатор и вградена библиотека на езика Pluto – алтернативна реализация на езика Lua 5.4 с множество промени и подобрения в синтаксиса, стандартната библиотека и интерпретатора.
Участниците в проекта също разработват библиотека Soup и проста система за сборка на проекти на C++ Sun. Проектите са написани на езика 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
