LINUX.ORG.RU

Pluto 0.10.0

 , , , ,

Pluto 0.10.0

0

4

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.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Pluto is largely compatible with Lua 5.4 source code, but there is an imperfection:

Не идеально, но интересно.

Хотя пока ещё рано хоть для чего-то использовать.

Bfgeshka ★★★★★
()
Ответ на: комментарий от Bfgeshka

Не идеально, но интересно.

Да, в отличие от https://luau.org в целях «безопасности» не выпилены функции модулей os, io и др.

dataman ★★★★★
() автор топика

Не хорошо дробить язык на самом деле, КМК. Не улучшайзинг ли это ради улучшайзинга?

gns ★★★★★
()

Как разработчик кое-каких модов для майнтеста, не могу не спросить: а нафига менять синтаксис-то? Синтаксис и определяет язык. Изменили синтаксис, и это уже не Lua. А то так тоже можно сделать «интерпретатор питона» в котором вместо отступов фигурные скобки, строки кончаются точкой с запятой, а перед именами переменных стоят $, @ или %.

Таким микрософт традиционно баловался и балуется.

Smacker ★★★★★
()

Pluto

на лого планета с кольцами

Отличная заявка на «ненужно года». Чуваки даже логотип нормально не могут сделать, очевидно и качество кода такое же.

cocucka_B_TECTE
()
Ответ на: комментарий от cocucka_B_TECTE

планета с кольцами

То, что «Новые горизонты» их не обнаружил, не доказало их полного отсутствия.

dataman ★★★★★
() автор топика
Ответ на: комментарий от cocucka_B_TECTE

Короче, с таким лого проект обречён.

А у малого (голубого) пингвина вообще нет жёлтого цвета. :)

dataman ★★★★★
() автор топика

вот бы кто его в nginx засунул модулем, по аналогии с ngx-lua
может, кто за 5к USDT захочет этим заняться?

ann_eesti
()

очередной пельмень на стартовой ))))

guyvernk
()
Ответ на: комментарий от LamerOk

Так это только исполняющая система другая, или синтаксис языка для luajit'a тоже другой? Если только исполняющая система, то оно и ладно.

gns ★★★★★
()
Ответ на: комментарий от Smacker

можно сделать «интерпретатор питона» в котором вместо отступов фигурные скобки

Вот ты смеёшься, а был ведь проект luacb – это интерпретатор Lua только с curly braces – именно фигурными скобками вместо then, end и остального словестного синтаксиса. Не взлетел.

CYB3R ★★★★★
()
Ответ на: комментарий от CYB3R

Вот ты смеёшься, а был ведь проект luacb – это интерпретатор Lua только с curly braces – именно фигурными скобками вместо then, end и остального словестного синтаксиса. Не взлетел

Кто бы мог подумать!

theNamelessOne ★★★★★
()
Ответ на: комментарий от IrratNumPi314

Ну, во-первых, из него проще выйти.

densss ★★★★★
()
Ответ на: комментарий от Smacker

Изменили синтаксис, и это уже не Lua.

Это Pluto, ты не заметил?

а нафига менять синтаксис-то?

Чтобы вести конструкции, которых в Lua нет.

debugger ★★★★★
()
Ответ на: комментарий от dataman

То, что «Новые горизонты» их не обнаружил, не доказало их полного отсутствия.

Это двойной планетоид: Харон достаточно велик, чтобы их общий с Плутоном центр масс находился вне Плутона. Там приливное воздействие будет такое, что кольца неизбежно разрушились бы, не успев сформироваться. Ну и Нептун тоже добавляет приливов.

Vidrele ★★★
()
Ответ на: комментарий от debugger

Заявка на то, чтобы быть «альтернативной реализации языка Lua 5.4», если ты не заметил.

Чтобы вести конструкции, которых в Lua нет.

Нет, значит и не нужны.

Smacker ★★★★★
()

Все lua-образные язычки не нужны.

ox55ff ★★★★★
()
Ответ на: комментарий от Smacker

Заявка на то, чтобы быть «альтернативной реализации языка Lua 5.4», если ты не заметил.

«Альтернативная реализация» — это фантазии автора новости. На сайте проекта Pluto представляется как

A superset of Lua 5.4 with a focus on general-purpose programming.

Нет, значит и не нужны.

Мне не нужно ⇒ никому не нужно. Классика.

debugger ★★★★★
()
Ответ на: комментарий от debugger

Мне не нужно ⇒ никому не нужно. Классика.

Так победим!

Smacker ★★★★★
()
Ответ на: комментарий от Vidrele

International Astronomical Union, a nongovernmental organization, downgraded that categorization in 2006

Интернациональный Астрономический Юниоид, неправительственный организоид

Alphaer ★★
()
Последнее исправление: Alphaer (всего исправлений: 1)
Ответ на: комментарий от gns

Главное чтоб книг по 5.3 много не было, а то органы поинтересуются.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Ответ на: комментарий от Alphaer

Остроумный комментароид! Держи, что ли, два чайоида.

Vidrele ★★★
()
Ответ на: комментарий от InterVi

потому что существующая реализация https://github.com/openresty/lua-nginx-module очень хорошо и быстро работает (в ~1.7 раза медленнее нативной сишки), и интегрировать плюшки Pluto было бы очень круто (хотя к скорости вопросы всё ещё есть, всё-таки не luajit)

ann_eesti
()
Ответ на: комментарий от ann_eesti

Просто пересобери сам ngx-lua с pluto и всё, внутри ngx-lua сидит luajit который заперт в промежутке версий Lua5.1~Lua5.2, сам pluto может спокойно исполнять обычный lua код (с нюансами, но эт такое), а это значит что всё заведётся из коробки, а что нет пошагово чинить что будет отваливаться. От 100 до 10000 правок и дело в шляпе. То есть базово всё будет на уровне языка ~lua5.2, но уже твой код поверх ngx-lua может быть уже c сахарами синтаксическими из pluto.

Но одно дело адаптировать, а совсем другое поддерживать. Pluto делает частые ломающие изменения. Нужно быть готовым с этим жить.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

просто заменой хедеров на плутовские не собирается.

дальше разбираться не стал, проще закинуть задачку кому-то, заработают деняк.

ann_eesti
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.