Основу 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 с корректной верификацией сертификатов.
Источник: http://www.opennet.ru/opennews/art.shtml?num=52203