The OpenNET Project / Index page

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

Доступен GNU Guile 2.2

16.03.2017 17:56

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

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

Новый выпуск примечателен добавлением нового оптимизирующего компилятора и новой высокопроизводительной регистровой виртуальной машины. По сравнению с прошлой стабильной веткой 2.0 в Guile 2.2 отмечается увеличение производительности выполнения существующих приложений как минимум на 30%. В новой версии также снижено потребление памяти и ускорена работа интерпретатора "eval". Представлена новая система динамического распределения памяти для стека, которая устранила все ограничения, связанные с фиксированным размером стека, и теперь позволяет использовать рекурсивные вызовы любого уровня вложенности.

Отдельно выделяется расширение средств многопоточного программирования. В Guile 2.2 добавлена возможность распараллеливания обработчиков в пространстве пользователя, позволяющая организовать одновременное выполнения миллионов легковесных нитей (fibers). Многопоточные библиотеки могут использовать нити для перехода в спящий режим с пробуждением при возобновлении операции ввода/вывода. В новой версии также расширены средства работы с локалями, а в строковых операциях по умолчанию задействована кодировка UTF-8 и проведена оптимизация работы с многобайтовыми наборами символов. Предоставляемая в Guile реализация Elisp признана полностью совместимой с Emacs и теперь содержит все заявленные в спецификации Elisp возможности, а также учитывает специфичные для Emacs особенности.

  1. Главная ссылка к новости (https://www.gnu.org/software/g...)
  2. OpenNews: Уязвимость в Guile, затрагивающая программы, привязанные к localhost
  3. OpenNews: Релиз GNU Make 4.0 с поддержкой расширений на языке GNU Guile
  4. OpenNews: Компилятор на базе GNU Guile достиг совместимости с приложениями на Emacs-Lisp
  5. OpenNews: Увидел свет GNU Guile 2.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46205-guile
Ключевые слова: guile, lisp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (13) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, freehck (ok), 18:39, 16/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Предоставляемая в Guile реализация Elisp признана полностью совместимой с Emacs и теперь содержит все заявленные в спецификации Elisp возможности, а также учитывает специфичные для Emacs особенности.

    Это, конечно, хорошо. Стало быть, можно надеяться, что Emacs окончательно переведут на Guile в уже недалёком будущем?

     
     
  • 2.13, Andrey Mitrofanov (?), 09:52, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Предоставляемая в Guile реализация Elisp признана полностью совместимой с Emacs и теперь содержит все заявленные в спецификации Elisp возможности, а также учитывает специфичные для Emacs особенности.
    > Это, конечно, хорошо. Стало быть, можно надеяться, что Emacs окончательно переведут на
    > Guile в уже недалёком будущем?

    Будущее уже https://www.emacswiki.org/emacs/GuileEmacsBuild здесь. А сдюжишь? :))

    ---Если я тебе скажу. что в нём и js типа есть, то http://lists.gnu.org/archive/html/guile-user/2017-03/msg00056.html ты его в броузере захочешь?

     
     
  • 3.16, freehck (ok), 21:35, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    О, спасибо. Когда я смотрел в последний раз, там было ешё не очень всё радужно. А они говорят, что из коробки теперь неплохо. Это хороший знак.

    Теперь второй вопрос на повестке дня: раз Guile уже запилили хорошо, как дела с параллелизмом? Короче, пошёл смотреть, раз такая движуха.

     

  • 1.3, Вы забыли заполнить поле Name (?), 19:16, 16/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Меня в guile убивает названия модулей. Хочешь, например, функции для работы с vector, подключаешь (use-modules (srfi srfi-43)). Хочешь записи (records) - (use-modules (srfi srfi-9)).
     
     
  • 2.4, Вы забыли заполнить поле (?), 19:37, 16/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Серьёзно? Читабельненько.
     
     
  • 3.14, Аноним (-), 11:11, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да, воспринятненько
     
  • 2.5, chinarulezzz (ok), 19:51, 16/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Разве нельзя декларировать импортируемые функции?
     
     
  • 3.12, freehck (ok), 23:53, 16/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Разве нельзя декларировать импортируемые функции?

    Конечно можно. И декларировать, и переименовать, как нравится.
    Для этого после модуля можно написать (#:select <и перечислить импортируемые символы>).
    А можно, например, написать (#:renamer prefix:) - и все импортированные символы будут иметь имена вида prefix:<импортированный-символ>

     
  • 2.6, Вы забыли заполнить свою жизнь смыслом (?), 21:04, 16/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А как называется модуль, предоставляющий функциональность, известную как left-pad?
     
     
  • 3.7, A.Stahl (ok), 21:12, 16/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    (use-modules (ice-9 format))
     
  • 3.8, Аноним (-), 22:46, 16/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это функции работы со строками
     
  • 2.11, freehck (ok), 23:48, 16/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    SRFI - это же просто стандарты, которые должны разделять реализации Scheme. Но если Вас так коробят имена, ничего ж не стоит переименовать модуль, как Вам нравится, и в остальной программе использовать уже это имя. :)
     
     
  • 3.15, Вы забыли заполнить поле Name (?), 16:06, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это понятно, но не избавляет от факта, что мне нужно даже в этом случае помнить в каком стандарте принята та или иная функциональность. Зачем это нужно? Почему не сделать опцией указание стандарта, а модулям дать нормальные имена. Если указанном стандарте нет модуля - ошибка с нормальным сообщением.
     

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



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

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