Состоялся релиз GNU Guile 3.0, свободной реализации функционального языка программирования Scheme, поддерживающей возможность встраивания кода в приложения на других языках программирования. Guile позволяет легко интегрировать в приложения расширяющие функциональность дополнения, модули и скрипты, даёт возможность пользователям менять поведение приложения без углубления в его внутреннюю организацию. Guile является официальным языком разработки расширений для операционной системы GNU...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=52203
Интересно. Где это используется? Оно быстрее камонлиспа? Как насчёт клажуры?
Почему в качестве основного интерпретатора Scheme используется guile?Alterator начинался как проект на языке C++. Однако в результате попыток внедрить удобный для пользователя язык описаний интерфейсов стал использоваться встроенный интерпретатор Scheme. Guile при всех своих недостатках является лучшим интерпретатором Scheme, в плане совместного использования с C/С ++, а поэтому и был выбран. При дальнейшем развитии проекта C++-часть его постепенно сокращалась, а Scheme усиливалась. Так продолжалось до тех пор пока проект не «вывернулся наизнанку», то есть он стал Scheme-проектом, в котором используются привязки к C/C++. Вот так проект эволюционировал, а guile остался. В наших планах стоит переезд на другой интерпретатор (или даже компилятор-интерпретатор) — ищутся добровольцы.
Зачем переезжать? Чтобы оправдать десятое правило Гринспена?
Самому интересно. Выше привёл цитату с вики Альта. Предполагаю, хотят что-то без излишеств, и что бы Схема пошустрее исполнялась. Впрочем, есть вероятность, что собственно переезд и не требуется.
Кроме гули есть еще другие схемы, если эта жирновата.
http://www.reklamofon.ru/images/statji/spektr001.jpgРакета, например, вполне-вполне. Или БольшойЛу.
>> В наших планах стоит переезд на другой интерпретатор
>> (или даже компилятор-интерпретатор) — ищутся добровольцы.
> Зачем переезжать? Чтобы оправдать десятое правило Гринспена?Фраза времён guile 1.x, в 2.0 байткод уже появился. Спасибо, поправил http://altlinux.org/Alterator_FAQ сообразно.
Справедливости для, "лучшим интерпретатором" он, конечно, не является. Вот разве среди встраеваемых...
Например затем, что с Guile много проблем на Эльбрусах. Кроме того, мало людей, кто хотел бы писать и сопровождать код на Guile — слишком экзотический и непрактичный язык.
Пакетный менеджер Guix, менеджер инициализации Shepherd.
Это они просто так выпендрились, типа смотрите мы не такие как все.
Выпендрились/не выпендрились, но они просто соотвествуют своему "Guile является официальным языком разработки расширений для операционной системы GNU".
клажура только под jvm, раз.гуйля и камонлисп - две совершенно разные, взаимонезаменяемые вещи. Тип как питон и руби.
> клажура только под jvm, раз.
> гуйля и камонлисп - две совершенно разные, взаимонезаменяемые вещи. Тип как питон
> и руби.Ну хорошо, пусть будет racket. Я спрашивал про перформанс, понятно, что там ради интеропа с жавой берут. Но есть тот же jython, например, и он просто диалект питона, не сказать чтобы совсем взаимозаменяемый. Примерно та же история с ironpython и остальными.
А что за перфомансом это в С++ а это скрипты они быстрыми не бывают.
Скриптам не обязательно быть быстрыми. Но не питону же сливать (на тебя смотрю цл).
> клажура только под jvm, раз.Нет, официально поддерживаются реализации на js (clojurescript) и CLR. Плюс существуют неофициальные (не полностью совместимые) реализации на го (joker) и в нативном коде через graal (sci + babashka). И еще есть несколько clojure-like языков, ей вдохновленных, типа janet, fennel и т.п.
Babashka весьма удобна для скриптинга, кстати, и активно разрабатывается. По мачурности ей с guile не сравниться, но как язык кложура конечно гораздо мощнее схемы.
Прошу прощения, не знал.
У кого-нибудь есть пример парсера на нем для строки вида:
tag1=v1 and (tag2=v2 or not tag3=v3)было бы неплохо увидеть пример.
Вот тут есть на нескольких разных языках: https://rosettacode.org/wiki/Compiler/syntax_analyzer
Правда, для схемы парсер какой-то дурацкий..
> Где это используется?Ты нипаверишь, но в GNU.
Да; помимо перечисленных, ещё и http://altlinux.org/alterator на схеме (причём как раз с guile).
Даже уважаемые программные продукты всё больше и больше превращаются в кодовую помойку.
прикольно)
Цикл жизни: рождение, зрелость, накопление болезней, смерть, забвение.
> Цикл жизни: рождение, зрелость, накопление болезней, смерть, забвение.Как минимум взросление забыли тогда :-) А ещё -- передачу опыта (в обе стороны).
Мир IT ближе к фэнтезийному. Тут и зомби встречаются, и духи есть.
Поговорить с оборудованием. Могут... :)))
Желе? Похоже это победа в конкурсе самый дурацких названий языков программирования.
есть еще раст, го и рекордсмен - джаваскрипт.
Mueller English-Russian Dictionary (mueller7)
guile
[gaıl] _n. обман; хитрость, коварство; вероломство
> Mueller English-Russian Dictionary (mueller7)
> guile
> [gaıl] _n. обман; хитрость, коварство; вероломствоА с большой буквы – имя персонажа из Street Fighter II:
https://vignette.wikia.nocookie.net/streetfighter/images/5/5...
http://i2.wp.com/shoryuken.com/wp-content/uploads/2017/10/sb...
omg, И кто додумался назвать того перса таким словом. Да он одним только вступительно-показным схлопыванием рук делает К.О.
Он это делает вероломно.
> Mueller English-Russian Dictionary (mueller7)
> guile
> [gaıl] _n. обман; хитрость, коварство; вероломствоА вот как для сэбя:
CollinsCobuild (En-En)
guile [ga͟ɪl]Guile is the quality of being good at deceiving people in a clever way.
His cunning and guile were not attributes I would ever underestimate...
I love children's innocence and lack of guile.
А, ну это как толковый великого и могучего... не нашего).
Ожегов не так многословен (тот, который для dictd).
Ну хоть не hutzpa, с этой-то публики бы сталось ;-)
Более того, за счёт существования названия Гайл, название Схема само окрасилось в "хитрость"
2. A secret or devious plan; a plot: a scheme to defraud investors.
И ещё ж есть какой-то вариант, тоже с этой игрой в слова на тему хитрости.
Одним словом это переводится "Жульё".
Кстати, отличная локализация, спасибо ;-)
Локализацией является "ворье"!
> Локализацией является "ворье"!Даёшь специальную, "воровскую" локаль с использованием всего нецензурного лексикона (ru_GU, или как его)
Так и Racket туда же клонит.
Вообще, давняя традиция: еще раньше Схемы был Conniver (connive — потакать, потворствовать).
Слишком много скобок, из-за них неудобно делать индентацию.
Индентация делается автоматически редактором же.
И не только идентация. Для работы с любым лиспом лучше использовать структурный редактор (paredit и подобные), и тогда вдруг оказывается, что это самый удобный синтаксис.
(Много (скобок (не) бывает))
Похоже, Andy Wingo так и остался единоличным диктатором проекта. ЗЫ: https://lists.gnu.org/archive/html/guile-devel/2019-10/msg00...
Странно что об этом даже новости на главной в опеннете не было.
Ван Россум тоже долго оставался и ничего.
Гвидо был великодушным.
О да, вон рядом его великодушие ртутные люди восхваляют до небес. Всё-таки важно не только намерение, но и его реализация.
Ртутных людей чижило понять. Они, скорее, саму идею нарушения обратной совместимости в переходе Py2/3 пинают, чем BDFL.
> Виртуальная машина Guile легко интегрируется с кодом приложений на языках Си и Си++
> Guile is designed to help programmers create flexible applications that can be extended by users or other programmers with plug-ins, modules, or scriptsПодскажите, пожалуйста, действительно ли хорошее решение для программ на C++? Lua мне в плане встраиваемого скриптового языка не нравится, всё-таки язык больше на Си ориентирован. Свой DSL городить не хочется...
> действительно ли хорошее решение для программ на C++?Это зависит. Конкретно, от того что и для кого вы пишете. Вряд-ли пользователям
игрушки понравится Lisp в качестве языка для скриптов.А вообще, Guile уже сейчас может компилировать в байткод VM не только синтаксис
схемы. Искаропки есть Elisp и JS (ну и Brainfuck, ага, куда ж без него). Есть
довольно уже зрелыепроекты, реализующие поддержку Lua и Python.> всё-таки язык больше на Си ориентирован
Аллилуия! Хоть не на такую мерзость как C++.
> Подскажите, пожалуйста, действительно ли хорошее решение для программ на C++?Ну посмотрите тот же альтератор, если интересно посмотреть, что и как может получиться за полтора десятка лет от C++ с немножко схемы к схеме с немножко C++. Там есть и издержки, вызванные сжатостью временных рамок на разработку своего инсталятора вместо мандраковского (допиливать который уже было слишком много мороки -- даже я к нему руку приложил и до сих пор немножко помню), и последовавший рефакторинг API силами в основном slazav@ -- но в целом есть на что посмотреть и с кем поговорить при надобности.
Заодно наработали небольшой учебник: http://altlinux.org/scheme (там же есть ссылки на SICP вместе с переводом и другое полезное).
PS re #45:
> Вряд-ли пользователям игрушки понравится Lisp в качестве языка для скриптов.Ну abuse вон ровно так и сделана -- шустро бегала ещё двадцать лет назад со своим AI.
> Ну abuse вон ровно так и сделана -- шустро бегала ещё двадцать
> лет назад со своим AI.Я имел в виду что-то более приземленное чем полноценный игновой AI. Так в Wesnoth,
емнип думали схему прикрутить, но в итоге остановились на Python. Потому что
90% картописателей и сценариеклепателей - схемы, увы, не знает.
> Так в Wesnoth, емнип думали схему прикрутить, но в итоге остановились
> на Python.Там же какой-то свой скриптоязык вырос на три буквы? (WSL, что ли)
WML. Но это не совсем скриптинг. Lua там сейчас для скриптинга, в т.ч. AI.