Компиляция байткода
Emacs Lisp обладает компилятором, который преобразует функции, написанные на Lisp, в специальное представление, называемое байткодом, для более эффективного выполнения. Компилятор заменяет определения функций Lisp байткодом. Когда вызывается функция байткода, её определение оценивается интерпретатором байткода.
Поскольку байткодовый код оценивается интерпретатором байткода, а не выполняется напрямую аппаратным обеспечением компьютера (как это происходит с истинно скомпилированным кодом), байткод полностью переносим с одной машины на другую без повторной компиляции. Однако он не так быстр, как истинно скомпилированный код.
В общем случае любая версия Emacs может выполнять байткодовый код, сгенерированный предыдущими версиями Emacs, но обратное неверно.
Если вы не хотите, чтобы файл Lisp был когда-либо скомпилирован, поместите в него привязку локальной переменной файла для no-byte-compile, как показано ниже:
;; -*-no-byte-compile: t; -*-
| • Скорость байткода | Пример ускорения благодаря компиляции в байт-код. | |
| • Функции компиляции | Функции компиляции в байт-код. | |
| • Документация и компиляция | Динамическая загрузка строк документации. | |
| • Динамическая загрузка | Динамическая загрузка отдельных функций. | |
| • Вычисление во время компиляции | Код, который должен быть вычислен во время компиляции. | |
| • Ошибки компилятора | Обработка сообщений об ошибках компилятора. | |
| • Объекты байткода | Тип данных, используемый для байткодовых функций. | |
| • Распаковка кода | Распаковка байткода; как читать байткод. |
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Byte-Compilation.html