LINUX.ORG.RU

Pluto 0.9.2

 , , pluto, ,

Pluto 0.9.2

0

2

Состоялся корректирующий выпуск 0.9.2 консольного интерпретатора и встраиваемой библиотеки языка Pluto – альтернативной реализации языка Lua 5.4 со множеством изменений и улучшений в синтаксисе, стандартной библиотеке и интерпретаторе.

Участниками проекта также разрабатывается библиотека Soup.
Проекты написаны на языке C++ и рапространяются по лицензии MIT.

Список изменений:

  • исправлена ошибка компиляции на архитектуре aarch64;
  • исправлен вызов методов в троичных выражениях (a ? b : c);
  • исправлена работа оператора := c улучшением сообщений об ошибках.

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

★★★★

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

в троичных выражениях (a ? b : c)

Тернарным оператором это уже не модно называть, похоже именно на него? Ну, тернарными выражениями, раз тут не оператор.

Virtuos86 ★★★★★
()

Как они форкнули и изменили Lua, если он сам по себе маленький. И можно ли его без бубнов интегрировать например с кодом C? Ведь в этом суть Lua, интеграция в другие кодовые базы безболезненно.

LibAccelerator
()

со множеством изменений и улучшений в синтаксисе

В LUA уже один только символ комментария "--" приводит людей в недоумение: неужели к началу разработки этого императивного языка не существовало общепринятых символов, чтобы впихивать свои? Или они решили показать что любят SQL? Или зачем?

В Pluto этим вопросом тоже не озаботились.

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

Посмотрел пример подсвеченного кода на Аде. "--" выглядит чище и эстетичнее чем «//» для комментария

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

А в чем проблема?
Просто заменили // на --
и /**/ на --[ ]--
Не такое уж и зло, чтобы его хейтить.

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

А что сейчас изменилось?

  • Си /**/
  • Плюсы //
  • Ассемблеры ;
  • sh и аналоги #
  • VimL "

И так далее. Никакого общепринятого комментирования просто не существует, просто есть те или иные группы языков где синтаксис схожий.

Луа это изначально язык описания данных, как аналог SOL и ещё чего-то. Там же рядом был язык DEL если не путаю, так это вообще Си как он есть, но чисто скриптовый. Есть ответвления луа с привычным тебе видом Squirrel

У луа, есть в отличии от многих языков чёткое описание всего почему так, а не иначе. Почему -- почему таблицы, почему многословность, почему то и это у каждой закорючки есть чёткое обоснование. Хотя местами оно такое себе, но оно есть. В отличии от многих других языков где так, а не иначе просто потому что

Но дабы понять нужно почитать или посмотреть Роберту Иерузалимски. Но этим заниматься стоит только если ты язык используешь, а просто так нет смысла.

Если кратко философия разработки языка луа такова «У всего есть своя цена» и она требует выбирать то или иное не исходя из моды, а исходя из необходимости после взвешивания всех за и против. Например нет декремента x-- потому что -- занят под комментарий, нет x++ потому что нет декремента и нет внутри хитрой обработки -- и как декремента и как комментария в зависимости от контекста потому что это дорого. Фича языка делающая одно для одних когда они её используют не должна влиять на тех кто её не использует. Из за этого каждый раз нужно делать тяжёлый выбор что добавлять в язык, а что нет. Такого что «вот эта штука прикольная! Добавим!» нет в принципе. Но у этого свои побочки есть, так как некоторые вещи важнее других, например разрешение иметь nil в таблицах как нечто целое из ничего важно для данных, но поболь если это множественный возврат от функции. Так что проблем достаточно и -- на их фоне просто условность, ну вот так оно, хочешь принимай как есть хочешь через препроцессор прогоняй со своим видом комментирования =)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от wandrien

Это расширенный синтаксис для луа считай, когда ты привык к схожести языков по подходам описания операций. Тебе нужны типы и так далее, но ты оч хочешь скриптуху, а не компилять. Имеет право на жизнь и многим зайдёт, единственное что меня шарахает от плуто, то это добавление в язык синтаксических фичей считай на основе их популярности. А фичей по сравнению с луа навалом, а мне лично в луа то и нравится что их минимум, а кому то наоборот это очень не нравится.

В любом случае пусть пилит, а то вон некоторые дорываются до основных проектов пытаясь внедрить туда своё, на другой язык пепеписать, на cmake пересадить и прочее прочее. Слава богу разработка lua идёт в закрытой форме, а публикуются только релизы. Luajit аналогично, хотя у последнего теперь даже релизов нет, чиcтый rolling, можно только его репу в текущем состоянии клонировать.

Если бы не такие подходы, и луа и всё превратились бы уже в жирных дур, на C++20 с meson в качестве сборки и с LLVM бекендом для байткода. Тьфу тьфу тьфу, тук тук тук. Эта зараза не коснётся лувашки никогда вжизни.

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

В луа # уже занят это операция взятия длинны непрерывных данных. "строка" или таблица {1,2,3,4} пока не встретит nil хотя это и фича и проблема одновременно. Смотря как смотреть.

-- вывести длину этого строки в байтах (12)
print(#"Привет")
-- вывести размер таблицы (6)
print(#{'П','р','и','в','е','т'})
LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от Xintrea

В LUA уже один только символ комментария «–» приводит людей в недоумение

А почему нет-то? Если всем все делать как в си то и будет получаться как в си, а зачем, если си уже есть?

по-своему приятно: пишешь строчку потом два минусика, типа тире, и комментарий, мне очень даже нравится

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

Тернарным оператором это уже не модно называть

Не слежу, это модно?

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

Как они форкнули и изменили Lua

Pluto не форк.

И можно ли его без бубнов интегрировать например с кодом C?

Да, C API практически без изменений – lua.h.
Что, кстати, мне не нравится, т. к. инсталлируется в инклюды.

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

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

Тебе никогда не хватало switch в Lua? :)
Или встроенных классов, которые во многих проектах делают, кто во что горазд?

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

Pluto проигрывает, что неудивительно.
Но LuaJIT не всё поддерживает даже из Lua 5.3.

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

Полный ответ на этот вопрос будет размером наверное в 5 A4 листов.
Поэтому я буду активно сопротивляться на него отвечать! :D

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

Йя не программист и с нулевовыми скилами
Синтаксических изысков не читаю вечерами
Свичи на луктабли заменяю без проблем
Классы на таблицах тоже едут между тем

Суть не в сахарах и синтаксической глюкозе
Нужно меру знать и прибегать к их малой дозе

Йоу

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

Хорошо, только отдельной новостью, пожалуйста.

hobbit ★★★★★
()

исправлен вызов методов в троичных выражениях (a ? b : c);

Ток сейчас заметил, не исправил, а вообще заменил.

Deprecated if expressions (if a then b else c) in favor of ternary expressions (a ? b : c)

Как родной синтаксис введённый как фича if a then b else c может устареть?
Типа уже сейчас или чуть попозже нельзя будет писать

x = if state == "Дождик" then "Спать" else "Гулять" 

Это он до 1.0 фундаментально язык ломает (что по сути правильно) или это так будет всегда? Только вперёд ни шагу назад :D?

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