Guile — это официальный язык расширений проекта GNU.
Данный релиз является первым стабильным релизом ветки 2.0.x и содержит множество изменений по сравнению с веткой 1.8:
- Поддержка исполнения кода на трёх языках: Scheme, Emacs Lisp и ECMAScript.
- Компиляция кода программы в байткод, который интерпретируется виртуальной машиной. Это позволило существенно улучшить скорость работы.
- Поддержка метакоманд в REPL. Например, мета-команда ,compile компилирует переданное выражение, а команда ,profile профилирует исполнение переданного выражения.
- Режим отладки в REPL. Если код вызывает ошибку, то включается режим отладки, в котором доступны метакоманды, позволяющие посмотреть стек вызовов, узнать значения переменных и т.п.
- Реализована встроенная поддержка syntax-rules и syntax-case систем гигиенических макросов, не требующая импорта модуля (ice-9 syncase).
- Строки Scheme могут содержать любые Unicode символы.
- Частично поддержан стандарт R6RS. Оставшиеся несоответствия можно посмотреть в мануале.
- Новый динамический FFI. Теперь возможно создание биндингов к библиотекам без создания кода на C.
- Теперь используется Boehm-Demers-Weiser консервативный сборщик мусора.
Кроме того, добавлен ряд модулей:
- (srfi srfi-45), предназначенный для реализации ленивых вычислений;
- (system base lalr) для генерации парсеров LALR(1);
- набор модулей (sxml ...) для работы с XML.
>>> Подробности