скомпилированная байтовая версия файлов elisp

12

У меня есть .elи .elcбайтово скомпилированная версия ( ) файла elisp. Случайно удаляю .elфайл. Могу ли я получить .elфайл из его .elcверсии? Является ли .elcфайл без его .elфункционала?

имя
источник

Ответы:

12

У меня есть как .el, так и байтовая версия (.elc) файла elisp. Случайно удаляю файл .el. Могу ли я получить файл .el из его версии .elc?

На практике нет.

Теоретически вы можете использовать файл elc для создания файла el с понятными для человека определениями. Однако это, вероятно, не будет выглядеть так же, как исходный файл, который вы удалили, из-за макросов и оптимизации компилятора, и даже тогда я не знаю ни одной библиотеки, которая делает это.

Работает ли файл .elc без его файла .el?

Да, Emacs счастлив загрузить .elcфайл самостоятельно. Нет .elфайла не требуется вообще.

На самом деле, даже если у вас есть оба в одном и том же каталоге, Emacs обычно загружает elc в любом случае.

Malabarba
источник
Вам не нужно " оба в одном каталоге ". Вам не нужны оба. Достаточно * .elc, по крайней мере, если ваша версия Emacs совместима с ним (например, с версией Emacs, из которой она была скомпилирована).
Дрю
@ Имя Второе предложение является дополнительной информацией. Ответ - «Да». Emacs прекрасно загрузит файлы 'elc' без файла '.el'.
Малабарба
2
«На самом деле, даже если у вас есть и в том же каталоге, Emacs обычно загружает ELC в любом случае.» .. Если load-prefer-newerустановлено значение tв Emacs 24.4+, новее из .el / .elc будет загружен.
Каушал Моди
3

Проверьте *.el~файл - может быть в Emacs есть резервная копия вашего отсутствующего *.elфайла (которую некоторые инструменты будут скрывать от вас в своем пользовательском интерфейсе, поэтому используйте что-то подобное ls -a).

В поисках Немо
источник