Emacs Lisp имеет компилятор, который преобразует функции, написанные на Lisp, в специальное представление, называемое байт-код, которое может выполняться более эффективно. Компилятор заменяет определения функций Lisp на байт-код. Когда вызывается функция с байт-кодом, ее определение оценивается интерпретатором байт-кода.
Поскольку байт-код оценивается интерпретатором байт-кода, а не выполняется непосредственно аппаратным обеспечением машины (как это происходит с истинно скомпилированным кодом), байт-код полностью переносим от машины к машине без перекомпиляции. Однако он не так быстр, как истинно скомпилированный код.
В общем случае любая версия Emacs может выполнять байт-компилированный код, созданный более ранними версиями Emacs, но обратное неверно.
Если вы не хотите, чтобы файл компилировался, поместите в него локальную переменную файла для no-byte-compile, как показано ниже:
;; -*-no-byte-compile: t; -*-