Byte versión compilada de archivos elisp

12

Tengo ambos .ely la versión compilada de bytes ( .elc) de un archivo elisp. Accidentalmente borro el .elarchivo. ¿Puedo recuperar el .elarchivo de su .elcversión? ¿ Funciona un .elcarchivo sin su .elarchivo?

Nombre
fuente

Respuestas:

12

Tengo tanto .el como la versión compilada de bytes (.elc) de un archivo elisp. Accidentalmente borro el archivo .el. ¿Puedo recuperar el archivo .el de su versión .elc?

En la práctica, no.

En teoría, podría usar el archivo elc para producir un archivo el con definiciones legibles por humanos. Sin embargo, esto probablemente no se vería igual que el archivo original que eliminó, debido a las macros y las optimizaciones del compilador, e incluso entonces no conozco ninguna biblioteca que haga eso.

¿Es funcional un archivo .elc sin su archivo .el?

Sí, Emacs se complace en cargar un .elcarchivo completamente solo. Ningún .elarchivo es necesario en absoluto.

De hecho, incluso cuando tiene ambos en el mismo directorio, Emacs generalmente cargará el elc de todos modos.

Malabarba
fuente
No necesita " ambos en el mismo directorio ". No necesitas los dos. El * .elc es suficiente, al menos si su versión de Emacs es compatible con él (por ejemplo, con la versión de Emacs de la que fue compilado).
Dibujó
@Name La segunda oración es información complementaria. La respuesta es sí". Emacs cargará bien los archivos 'elc' sin el archivo '.el'.
Malabarba
2
"De hecho, incluso si tiene ambos en el mismo directorio, Emacs generalmente cargará el elc de todos modos". Si load-prefer-newerestá configurado ten emacs 24.4+, se cargará el más nuevo .el / .elc.
Kaushal Modi
3

Verifique si hay un *.el~archivo: puede haber una copia de seguridad de Emacs de su *.elarchivo faltante (que algunas herramientas le ocultarán en su interfaz de usuario, así que use algo como ls -a).

Buscando a Nemo
fuente