Pluto 0.10.0

good-penguin.png

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