versão compilada em bytes dos arquivos elisp

12

Eu tenho ambos .ele a versão compilada em bytes ( .elc) de um arquivo elisp. Acidentalmente eu apago o .elarquivo. Posso recuperar o .elarquivo de sua .elcversão? Um .elcarquivo sem o seu .elarquivo está funcional?

Nome
fonte

Respostas:

12

Eu tenho ambos .el e a versão compilada em bytes (.elc) de um arquivo elisp. Acidentalmente, excluo o arquivo .el. Posso recuperar o arquivo .el de sua versão .elc?

Na prática, não.

Em teoria, você poderia usar o arquivo elc para produzir um arquivo el com definições legíveis por humanos. No entanto, isso provavelmente não pareceria o mesmo que o arquivo original que você excluiu, devido a otimizações de macros e compiladores, e mesmo assim não conheço nenhuma biblioteca que faça isso.

Um arquivo .elc sem o arquivo .el está funcional?

Sim, o Emacs tem o prazer de carregar um .elcarquivo inteiramente por si só. Nenhum .elarquivo é necessário.

De fato, mesmo quando você possui os dois no mesmo diretório, o Emacs geralmente carrega o elc de qualquer maneira.

Malabarba
fonte
Você não precisa de " ambos no mesmo diretório ". Você não precisa de ambos. O * .elc é suficiente, pelo menos se a sua versão do Emacs for compatível com ele (por exemplo, com a versão do Emacs da qual foi compilada).
Tirou
@Name A segunda frase é uma informação complementar. A resposta é sim". O Emacs carregará arquivos 'elc' sem problemas, sem o arquivo'el '.
Malabarba 8/08
2
"Na verdade, mesmo quando você tem ambos no mesmo diretório, Emacs geralmente carregar o elc de qualquer maneira." .. Se load-prefer-newerestiver definido como tno emacs 24.4+, mais recente do .El / .elc será carregado.
Kaushal Modi
3

Verifique se há um *.el~arquivo - pode haver um backup do Emacs do seu *.elarquivo ausente (que algumas ferramentas escondem de você na interface do usuário, use algo como ls -a).

Procurando Nemo
fonte