The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Увидел свет GNU Guile 3.0

17.01.2020 13:28

Состоялся релиз GNU Guile 3.0, свободной реализации функционального языка программирования Scheme, поддерживающей возможность встраивания кода в приложения на других языках программирования. Guile может быть использован как язык для разработки расширений для приложений, определения конфигурации или разработки компонентов для связи различных примитивов, предоставляемых приложением. Guile является официальным языком разработки расширений для операционной системы GNU.

Основу Guile составляет эффективная виртуальная машина, которая выполняет переносимый набор инструкций, генерируемый специальным оптимизирующим компилятором. Виртуальная машина Guile легко интегрируется с кодом приложений на языках Си и Си++. Кроме языка Scheme, для которого реализована поддержка спецификаций R5RS, R6RS и R7RS, в рамках проекта Guile разработаны компиляторы и для других языков, таких как ECMAScript, Emacs Lisp и Lua (в процессе разработки). В состав пакета входит библиотека модулей, в которых реализованы типовые сервисные функции, такие как работа с протоколом HTTP, парсинг XML и использование методов объектно-ориентированного программирования.

Ключевым новшеством в GNU Guile 3.0 стало появление JIT-компилятора, помимо ранее предлагаемых интерпретатора и компилятора в байткод, выполняемый в специальной виртуальной машине, привязываемой к приложению в форме библиотеки. JIT позволяет генерировать машинный код на лету и существенно ускоряет выполнение Guile-приложений (тесты показывают ускорение до 4 раз). JIT-компилятор поддерживает работу на архитектурах x86-64, i686, ARMv7 и AArch64.

Некоторые их других улучшений:

  • Поддержка новой спецификации языка Scheme R7RS и определённых в ней библиотечных модулей;
  • В виртуальной машине Guile реализована поддержка более низкоуровневого байткода, позволяющего применить расширенные оптимизации;
  • Поддержка комбинирования внутренних define-определений и выражений (например, "(define _ (begin (foo) #f))");
  • Предложена унифицированная реализация структурированного типа данных ("records");
  • Переработаны примитивы обработки исключений (throw и catch);
  • Определены биндинги для расширенного синтаксиса "else", "=>", "..." и "_";
  • В http-request, http-get и других связанных с web-клиентом процедурах добавлена возможность загрузки контента по шифрованному каналу связи с использованием TLS с корректной верификацией сертификатов.


  1. Главная ссылка к новости (https://lists.gnu.org/archive/...)
  2. OpenNews: Выпуск GNU Mes 0.21, инструментария для самодостаточной сборки дистрибутивов
  3. OpenNews: Мэйнтейнеры проектов GNU выступили против единоличного лидерства Столлмана
  4. OpenNews: Доступен пакетный менеджер GNU Guix 1.0 и дистрибутив GuixSD на его основе
  5. OpenNews: Выпуск системы инициализации GNU Shepherd 0.6
  6. OpenNews: Доступен GNU Guile 2.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52203-gnu
Ключевые слова: gnu, guile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (59) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:09, 17/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно. Где это используется? Оно быстрее камонлиспа? Как насчёт клажуры?
     
     
  • 2.3, Аноним (3), 14:52, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Почему в качестве основного интерпретатора Scheme используется guile Altera... большой текст свёрнут, показать
     
     
  • 3.11, Урри (?), 16:40, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем переезжать? Чтобы оправдать десятое правило Гринспена?
     
     
  • 4.15, Аноним (3), 16:53, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Самому интересно. Выше привёл цитату с вики Альта. Предполагаю, хотят что-то без излишеств, и что бы Схема пошустрее исполнялась. Впрочем, есть вероятность, что собственно переезд и не требуется.
     
     
  • 5.18, Урри (?), 17:25, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кроме гули есть еще другие схемы, если эта жирновата.
    http://www.reklamofon.ru/images/statji/spektr001.jpg

    Ракета, например, вполне-вполне. Или БольшойЛу.

     
  • 4.26, Michael Shigorin (ok), 22:51, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> В наших планах стоит переезд на другой интерпретатор
    >> (или даже компилятор-интерпретатор) — ищутся добровольцы.
    > Зачем переезжать? Чтобы оправдать десятое правило Гринспена?

    Фраза времён guile 1.x, в 2.0 байткод уже появился.  Спасибо, поправил http://altlinux.org/Alterator_FAQ сообразно.

     
     
  • 5.35, myhand (ok), 10:11, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Справедливости для, "лучшим интерпретатором" он, конечно, не является.  Вот разве среди встраеваемых...
     
  • 4.63, bircoph (ok), 20:06, 20/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Например затем, что с Guile много проблем на Эльбрусах. Кроме того, мало людей, кто хотел бы писать и сопровождать код на Guile — слишком экзотический и непрактичный язык.
     
  • 2.5, Аноним (5), 15:15, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Пакетный менеджер Guix, менеджер инициализации Shepherd.
     
     
  • 3.8, Аноним (8), 16:24, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это они просто так выпендрились, типа смотрите мы не такие как все.
     
     
  • 4.40, Аноним (40), 12:49, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Выпендрились/не выпендрились, но они просто соотвествуют своему "Guile является официальным языком разработки расширений для операционной системы GNU".
     
  • 2.9, Урри (?), 16:38, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    клажура только под jvm, раз.

    гуйля и камонлисп - две совершенно разные, взаимонезаменяемые вещи. Тип как питон и руби.

     
     
  • 3.20, Аноним (1), 18:01, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > клажура только под jvm, раз.
    > гуйля и камонлисп - две совершенно разные, взаимонезаменяемые вещи. Тип как питон
    > и руби.

    Ну хорошо, пусть будет racket. Я спрашивал про перформанс, понятно, что там ради интеропа с жавой берут. Но есть тот же jython, например, и он просто диалект питона, не сказать чтобы совсем взаимозаменяемый. Примерно та же история с ironpython и остальными.

     
     
  • 4.32, Аноним (32), 08:13, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А что за перфомансом это в С++ а это скрипты они быстрыми не бывают.
     
     
  • 5.43, Аноним (1), 13:26, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Скриптам не обязательно быть быстрыми. Но не питону же сливать (на тебя смотрю цл).
     
  • 3.33, Аноним (33), 10:07, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > клажура только под jvm, раз.

    Нет, официально поддерживаются реализации на js (clojurescript) и CLR. Плюс существуют неофициальные (не полностью совместимые) реализации на го (joker) и в нативном коде через graal (sci + babashka). И еще есть несколько clojure-like языков, ей вдохновленных, типа janet, fennel и т.п.

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

     
     
  • 4.62, Урри (?), 16:22, 20/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Прошу прощения, не знал.
     
  • 2.13, fi (ok), 16:45, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У кого-нибудь есть пример парсера на нем для строки вида:
    tag1=v1 and (tag2=v2 or not tag3=v3)

    было бы неплохо увидеть пример.

     
     
  • 3.19, Урри (?), 17:45, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот тут есть на нескольких разных языках: https://rosettacode.org/wiki/Compiler/syntax_analyzer
    Правда, для схемы парсер какой-то дурацкий..
     
  • 2.17, user90 (?), 17:20, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Где это используется?

    Ты нипаверишь, но в GNU.

     
  • 2.25, Michael Shigorin (ok), 22:46, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да; помимо перечисленных, ещё и http://altlinux.org/alterator на схеме (причём как раз с guile).
     

  • 1.2, Аноним (2), 14:26, 17/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Даже уважаемые программные продукты всё больше и больше превращаются в кодовую помойку.
     
     
  • 2.4, Millicent1412 (ok), 14:56, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    прикольно)
     
     
  • 3.55, Аноним (55), 19:33, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Цикл жизни: рождение, зрелость, накопление болезней, смерть, забвение.
     
     
  • 4.56, Michael Shigorin (ok), 19:37, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Цикл жизни: рождение, зрелость, накопление болезней, смерть, забвение.

    Как минимум взросление забыли тогда :-)  А ещё -- передачу опыта (в обе стороны).

     
     
  • 5.59, myhand (ok), 21:11, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мир IT ближе к фэнтезийному.  Тут и зомби встречаются, и духи есть.
     
     
  • 6.61, Antonimous (?), 21:24, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Поговорить с оборудованием. Могут... :)))
     

  • 1.7, Аноним (8), 16:23, 17/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Желе? Похоже это победа в конкурсе самый дурацких названий языков программирования.
     
     
  • 2.10, Урри (?), 16:39, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    есть еще раст, го и рекордсмен - джаваскрипт.
     
  • 2.12, ммнюмнюмус (?), 16:41, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Mueller English-Russian Dictionary (mueller7)
    guile
       [gaıl] _n. обман; хитрость, коварство; вероломство
     
     
  • 3.16, Аноним84701 (ok), 17:20, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Mueller English-Russian Dictionary (mueller7)
    > guile
    >    [gaıl] _n. обман; хитрость, коварство; вероломство

    А с большой буквы – имя персонажа из Street Fighter II:
    https://vignette.wikia.nocookie.net/streetfighter/images/5/5c/Guile-oldstance.
    http://i2.wp.com/shoryuken.com/wp-content/uploads/2017/10/sb.png

     
     
  • 4.23, ммнюмнюмус (?), 20:05, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    omg, И кто додумался назвать того перса таким словом. Да он одним только вступительно-показным схлопыванием рук делает К.О.
     
     
  • 5.39, Аноним (39), 11:21, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он это делает вероломно.
     
  • 3.21, Аноним (3), 18:05, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 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.

     
     
  • 4.22, ммнюмнюмус (?), 19:59, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А, ну это как толковый великого и могучего... не нашего).
    Ожегов не так многословен (тот, который для dictd).
     
  • 4.27, Michael Shigorin (ok), 22:53, 17/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну хоть не hutzpa, с этой-то публики бы сталось ;-)
     
     
  • 5.29, Ю.Т. (?), 00:01, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Более того, за счёт существования названия Гайл, название Схема само окрасилось в "хитрость"
      2. A secret or devious plan; a plot: a scheme to defraud investors.
    И ещё ж есть какой-то вариант, тоже с этой игрой в слова на тему хитрости.
     
     
  • 6.31, Аноним (32), 08:06, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Одним словом это переводится "Жульё".
     
     
  • 7.47, Michael Shigorin (ok), 18:40, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кстати, отличная локализация, спасибо ;-)
     
     
  • 8.53, myhand (ok), 19:23, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Локализацией является ворье ... текст свёрнут, показать
     
     
  • 9.58, ммнюмнюмус (?), 20:16, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Даёшь специальную, воровскую локаль с использованием всего нецензурного лексик... текст свёрнут, показать
     
  • 6.46, Аноним (46), 18:36, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так и Racket туда же клонит.
     
     
  • 7.49, Аноним (46), 18:44, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще, давняя традиция: еще раньше Схемы был Conniver (connive — потакать, потворствовать).
     

  • 1.30, Аноним (30), 07:35, 18/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Слишком много скобок, из-за них неудобно делать индентацию.
     
     
  • 2.34, Аноним (33), 10:09, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Индентация делается автоматически редактором же.
     
     
  • 3.51, Аноним (46), 18:51, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И не только идентация.  Для работы с любым лиспом лучше использовать структурный редактор (paredit и подобные), и тогда вдруг оказывается, что это самый удобный синтаксис.
     
  • 2.36, myhand (ok), 10:15, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    (Много (скобок (не) бывает))
     

  • 1.37, myhand (ok), 11:14, 18/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Похоже, Andy Wingo так и остался единоличным диктатором проекта.  ЗЫ: https://lists.gnu.org/archive/html/guile-devel/2019-10/msg00004.html
     
     
  • 2.38, Аноним (39), 11:20, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Странно что об этом даже новости на главной в опеннете не было.
     
  • 2.41, Аноним (40), 13:09, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ван Россум тоже долго оставался и ничего.
     
     
  • 3.42, myhand (ok), 13:18, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Гвидо был великодушным.
     
     
  • 4.48, Michael Shigorin (ok), 18:42, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    О да, вон рядом его великодушие ртутные люди восхваляют до небес.  Всё-таки важно не только намерение, но и его реализация.
     
     
  • 5.54, myhand (ok), 19:26, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ртутных людей чижило понять.  Они, скорее, саму идею нарушения обратной совместимости в переходе Py2/3 пинают, чем BDFL.
     

  • 1.44, Аноним (44), 15:34, 18/01/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Виртуальная машина 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 городить не хочется...

     
     
  • 2.45, myhand (ok), 17:11, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > действительно ли хорошее решение для программ на C++?

    Это зависит.  Конкретно, от того что и для кого вы пишете.  Вряд-ли пользователям
    игрушки понравится Lisp в качестве языка для скриптов.

    А вообще, Guile уже сейчас может компилировать в байткод VM не только синтаксис
    схемы.  Искаропки есть Elisp и JS (ну и Brainfuck, ага, куда ж без него).  Есть
    довольно уже зрелыепроекты, реализующие поддержку Lua и Python.

    > всё-таки язык больше на Си ориентирован

    Аллилуия!  Хоть не на такую мерзость как C++.

     
  • 2.50, Michael Shigorin (ok), 18:49, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Подскажите, пожалуйста, действительно ли хорошее решение для программ на C++?

    Ну посмотрите тот же альтератор, если интересно посмотреть, что и как может получиться за полтора десятка лет от C++ с немножко схемы к схеме с немножко C++.  Там есть и издержки, вызванные сжатостью временных рамок на разработку своего инсталятора вместо мандраковского (допиливать который уже было слишком много мороки -- даже я к нему руку приложил и до сих пор немножко помню), и последовавший рефакторинг API силами в основном slazav@ -- но в целом есть на что посмотреть и с кем поговорить при надобности.

    Заодно наработали небольшой учебник: http://altlinux.org/scheme (там же есть ссылки на SICP вместе с переводом и другое полезное).

    PS re #45:
    > Вряд-ли пользователям игрушки понравится Lisp в качестве языка для скриптов.

    Ну abuse вон ровно так и сделана -- шустро бегала ещё двадцать лет назад со своим AI.

     
     
  • 3.52, myhand (ok), 19:22, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну abuse вон ровно так и сделана -- шустро бегала ещё двадцать
    > лет назад со своим AI.

    Я имел в виду что-то более приземленное чем полноценный игновой AI.  Так в Wesnoth,
    емнип думали схему прикрутить, но в итоге остановились на Python.  Потому что
    90% картописателей и сценариеклепателей - схемы, увы, не знает.

     
     
  • 4.57, Michael Shigorin (ok), 19:38, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Так в Wesnoth, емнип думали схему прикрутить, но в итоге остановились
    > на Python.

    Там же какой-то свой скриптоязык вырос на три буквы? (WSL, что ли)

     
     
  • 5.60, myhand (ok), 21:16, 18/01/2020 [^] [^^] [^^^] [ответить]  
  • +/
    WML.  Но это не совсем скриптинг.  Lua там сейчас для скриптинга, в т.ч. AI.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру