LINUX.ORG.RU

посоветуйте встраиваемый скриптовый язык

 , ,


2

5

Есть относительно большая аппа на C++ с большим количеством всего захардкоженного. Эволюция дошла до того, что народ поверил в нужность конфигов и расширения функций пользователями, дабы не компилировать на каждый чих и не лезть грязными лапами в код, ломая всё на своём пути. Народ попробовал разные язычки типа python и AngelScript встраивать, но оно не подошло в силу тормознутости и больших размеров а также по ряду других параметров, в итоге сформировался список требований:

1. Нужен язык, на котором лего представить как код так и данные, без лишних синтаксических конструкций. Многословие приводит к большему количеству ошибок.

2. Нужна возможность лёгкого расширения синтаксиса дабы снизить до минимума объемы кода, гоняемого в скрипте, за счёт синтаксилечких конструкций.

3. Нужна скорость, особенно важно, чтобы код, состоящиё только из вызова определённых в C/C++ конструкций выполнялся максимально быстро. Также декларативный код должен выполняться максимально быстро.

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

Пока я смотрю больше на Lua, но народу нравится больше S-выражения, поэтому рассматриваю ещё https://github.com/ashinn/chibi-scheme

Есть какие ещё варианты?

★★★★★

Последнее исправление: slapin (всего исправлений: 2)
Ответ на: комментарий от tailgunner

Твое утверждение опровергается практикой.

Я же тебе только что дал ссылку из практики про Maple. Если бы Maple линковался статически и glibc был под LGPL и не был системным, то у Maple были бы проблемы.

Это не имеет ровно никакого отношения к лицензионным проблемам.

С Glibc разумеется. Она же системная. И в данном случае использовалась динамическая линковка.

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

Сформулируй тезисы, которые ты пытаешься доказать.

LGPL запрещает влинковывать библиотеку в распространяемый не (L)GPL бинарник.

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

LGPL запрещает влинковывать библиотеку в распространяемый не (L)GPL бинарник.

LGPL требует, чтобы библиотеку можно было заменять. Если ты найдешь способ заменять влинкованную в не-LGPL бинарь библиотеку (сборка из *.o), ты соблюдешь LGPL

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

Если ты найдешь способ заменять влинкованную в не-LGPL бинарь библиотеку (сборка из *.o), ты соблюдешь LGPL

Именно про это я и пишу. Что вместо простого выкладывания бинарника я должен идти на много-много дополнительных телодвижений. Причём если я не озаботился тем, чтобы пользователь не мог скачать бинарник без всего этого мусора (исходников библиотеки + .o файлов), то я ещё и попадаю на обязательство пожизненно держать архив исходников всех скачанных у меня программ. А если сервер полетел, то привет нарушение LGPL: я не предоставил кому-то из получателей бинарника соответствующие исходники и .o файлы.

P.S. Поэтому под (L)GPL я распространяю свои программы только в исходниках. Кому сильно надо — скомпилирует. А попадать на ситуацию «вот я скачал программу 5 лет назад, а теперь ты должен мне исходники» мне не улыбается.

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

Для коммерческого софта в принципе терпимо. В конце-концов там будет договор о покупке. А вот если программа бесплатно раздаётся, то ожидаются проблемы.

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

Если ты найдешь способ заменять влинкованную в не-LGPL бинарь библиотеку (сборка из *.o), ты соблюдешь LGPL

Именно про это я и пишу.

А, то есть

monk> Если компилятор умный и делает inline, то .o не поможет

было именно об этом. Окей.

Поэтому под (L)GPL я распространяю свои программы только в исходниках

попадать на ситуацию «вот я скачал программу 5 лет назад, а теперь ты должен мне исходники» мне не улыбается.

Твои страхи - они твои личные.

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

Разве GPL не трактует распространение ПО как активное действие? Т.е. ты заключил с кем-то договор и «распространил» ему gpl программу вместе с исходниками. А ежели у тебя есть публичный архив из которого кто-то там чего-то где-то скачал, то это исключительно его трудности?

P.S. I Am Not A Lawer.

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

А ежели у тебя есть публичный архив из которого кто-то там чего-то где-то скачал, то это исключительно его трудности?

Юридически это называется «оферта». То есть, если ты сделал публичный архив, в котором софт под GPL, то либо выполняешь условия GPL (в частности обязан предоставить скачавшим софт исходники, можно по запросу), либо нарушаешь лицензию со всеми вытекающими последствиями вплоть до ст. 146 УК РФ.

В реальности, конечно, на большую часть текста лицензии всем плевать. Суды и полиция смотрят на платно/бесплатно и оплачено ли если платно. В то время как, например, в лицензиях MS есть запрет допускать к лицензированному ПО третьих лиц. Например, соседа к домашнему компьютеру, или специалиста по настройке кассы к рабочему.

Так и с GPL. Если автор программы (кстати, кто именно, если ПО не передано FSF?) не подаст в суд РФ за нарушение его прав с указанием материального ущерба, то всем плевать, как именно GPL код на самом деле используется.

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

Поэтому под (L)GPL я распространяю свои программы только в исходниках
попадать на ситуацию «вот я скачал программу 5 лет назад, а теперь ты должен мне исходники» мне не улыбается.

Твои страхи - они твои личные.

В том-то и дело, что г-н monk усердно пытается личные свои страхи превратить в общественные. FUD как он есть. (Хотя я выше и оговорился, что не имею пока оснований подозревать его в злонамеренности.)

Так что оставлять это так не стоило бы.

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

Если бы Maple линковался статически и glibc был под LGPL и не был системным, то у Maple были бы проблемы.
Glibc разумеется. Она же системная.

Вы опять все перепутали. И даже перевернули вверх ногами.

«Системные бибилиотеки» — это то, что позволяет программам под GNU (Lesser) GPL вопреки всему остальному зависеть от компонентов под *несовместимыми* условиями (в том числе несвободными), а равно и от вообще не распространяемых.

Maple же — не программа под GNU (Lesser) GPL.

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

вместо простого выкладывания бинарника я должен идти на много-много дополнительных телодвижений.

Вместо написания своей проприетарщины с нуля, вы *можете* по милости владельцев библиотеки под GNU Lesser GPL включить ее в свою программу как часть, сохранив за пользователями лишь скромное право свободно изменять эту самую часть.

Авторам свободных программ *никаких* дополнительных телодвижений делать не требуется.

Причём если я не озаботился тем, чтобы пользователь не мог скачать бинарник без всего этого мусора (исходников библиотеки + .o файлов), то я ещё и попадаю на обязательство пожизненно держать архив исходников всех скачанных у меня программ.

Вызывающая ложь.

Будьте добры, озаботьтесь уже ознакомиться с предметом, о котором имеете бесстыжесть так уверенно судить уже не первый год. Хотя бы на уровне прочтения ЧаВО [0], если на прочтение оригинала чего-то не хватает.

[0] https://www.gnu.org/licenses/gpl-faq.ru.html

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

IANAL, TINLA.

Разве GPL не трактует распространение ПО как активное действие?

«Распространение» лицензии ГНУ раньше не определяли, а в актуальных версиях оно переименовано в «передачу» (conveying), и переименовано именно затем, чтобы невозбранно дать ему определение:

To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

Нужен перевод или комментарии?

Т. е. ты заключил с кем-то договор и «распространил» ему программу [под GPL] вместе с исходниками.

Обнародовав произведение под свободной лицензией (а на самом деле шире — под открытой, то есть вплоть до shareware), вы в некотором смысле заключили договор со всем миром.

А ежели у тебя есть публичный архив из которого кто-то там чего-то где-то скачал, то это исключительно его трудности?

В контексте вопроса — конечно его. Не ваши же. То есть, грубо говоря, вот-де сборка, а вот — то, из чего она была получена. На этом ваши обязательства кончаются.

То есть вам, конечно же, никто не запрещает дать какие-нибудь дополнительные гарантии. Более того — старые версии лицензий ГНУ еще и дозволяли дать обязательство предоставлять исходники и прочее по запросу *вместо* них самих. Но поскольку люди в массе своей не monk’и, то есть сами себе не враги, такие обязательства едва ли кто не давал.

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

А кто запретит выдать исходники не «сию секунду», а попозже, когда время будет свободное?

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

Я не вполне понял вопрос. Можно более развернуто, с примерами?

(Еще лучше, если все это будет в особо отведенной для него нити, а то здесь и так в офтопик залезли по самые уши.)

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

Хотя бы на уровне прочтения ЧаВО [0]

Ну вот конкретная ссылка из ЧаВО: https://www.gnu.org/licenses/gpl-faq.ru.html#SourceAndBinaryOnDifferentSites

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

А вот соответствующий кусок из самой лицензии (GPL3, 6d):

Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.

«these requirements» разве не являются требованием предоставить доступ к исходникам всем, кто скачал объектный код?

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

Ну вот конкретная ссылка...

Молодца, это нашли. Теперь еще можно бы найти там про втюхивание «мусора» (как вы изволили назвать материалы обеспечивающие право на свободу модификации) — там это, емнип, особо освещено.

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

«these requirements» разве не являются требованием предоставить доступ к исходникам всем, кто скачал объектный код?

«These requirements» — это отсылка к тому, что изложено в том же пункте чуть ранее: «Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge».

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

offer equivalent access to the Corresponding Source in the same way through the same place at no further charge

Вот это. Здесь нету явного ограничения времени.

Если же есть в формулировке «столько же времени, сколько вы будете распространять объектный код», то получается, что если получатель скачал программу, но не скачал все исходники (причём именно используемой версии), то он не может никому передать скачанную программу (в частности, сервер с ОС GNU/Linux нельзя передать другой организации) из-за https://www.gnu.org/licenses/gpl-faq.ru.html#UnchangedJustBinary. То есть abandonware в случае GPL ещё большая проблема, чем для коммерческого ПО.

P.S. Надо озаботиться скачиванием исходников всего используемого GPL софта, начиная с Debian и 7-Zip.

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

offer equivalent access to the Corresponding Source in the same way through the same place at no further charge

Вот это. Здесь нету явного ограничения времени.

Продолжайте наблюдения.

получается, что если получатель скачал программу, но не скачал все исходники (причём именно используемой
версии), то он не может никому передать скачанную программу (в частности, сервер с ОС GNU/Linux нельзя
передать другой организации) из-за https://www.gnu.org/licenses/gpl-faq.ru.html#UnchangedJustBinary. То есть
abandonware в случае GPL ещё большая проблема, чем для коммерческого ПО.

Вот уж воистину, ссы в глаза — все божья роса.

Вы только что нагородили с три короба вранья, вам на них ответили, на что вы нитчоже сумняшеся делаете следующий наброс, покоряя новые вершины абсурда:

то есть abandonware в случае GPL еще большая проблема, чем для [несвободного] ПО.

Ага-ага. Насколько большая, что вы без труда накидаете с десяток примеров... ну хорошо, пяток... два... хотя бы один... Ни одного, да?

чем для коммерческого ПО

Остальным напоминаю, что (не)свободная программа и (не)коммерческая — это ортогональные понятия.

в частности, сервер с GNU/Linux нельзя передать другой организации

Не осилили ЧаВО, ограничились парой пунктов. Печаль.

Надо озаботиться скачиванием исходников ... начиная с Дебиана

Вот, да, займитесь. Хоть зеркало подымите. Пусть и одно из многих сотен, но хоть какая-никакая польза.

Zmicier ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.