bytekompilierte Version von Elisp-Dateien

12

Ich habe beide .elund das Byte kompilierte Version ( .elc) einer Elisp-Datei. Versehentlich lösche ich die .elDatei. Kann ich die .elDatei von seiner .elcVersion abrufen ? Ist eine .elcDatei ohne .elFunktion?

Name
quelle

Antworten:

12

Ich habe beide .el und das Byte kompilierte Version (.elc) einer Elisp-Datei. Aus Versehen lösche ich die .el-Datei. Kann ich die .el-Datei von der .elc-Version abrufen?

In der Praxis nein.

Theoretisch könnten Sie die elc-Datei verwenden, um eine el-Datei mit lesbaren Definitionen zu erstellen. Aufgrund von Makros und Compiler-Optimierungen würde dies jedoch wahrscheinlich nicht so aussehen wie die Originaldatei, die Sie gelöscht haben, und selbst dann sind mir keine Bibliotheken bekannt, die dies tun.

Ist eine .elc-Datei ohne die .el-Datei funktionsfähig?

Ja, Emacs lädt eine .elcDatei gerne ganz alleine. Es .elist überhaupt keine Datei erforderlich.

Selbst wenn sich beide im selben Verzeichnis befinden, lädt Emacs den elc normalerweise trotzdem.

Malabarba
quelle
Sie brauchen nicht " beide im selben Verzeichnis ". Sie brauchen nicht beide. Die * .elc genügt, zumindest wenn Ihre Emacs-Version damit kompatibel ist (zB mit der Emacs-Version, aus der sie kompiliert wurde).
Drew
@Name Der zweite Satz ist eine ergänzende Information. Die Antwort ist ja". Emacs lädt 'elc'-Dateien ohne die' .el'-Datei.
Malabarba,
2
„In der Tat, auch wenn Sie beides haben im gleichen Verzeichnis, werden Emacs laden in der Regel die elc sowieso.“ .. Wenn load-prefer-newereingestellt wird tin Emacs 24.4+, neuere der .el / .elc geladen.
Kaushal Modi
3

Nach einer *.el~Datei suchen - Möglicherweise gibt es eine Emacs-Sicherung Ihrer fehlenden *.elDatei (die einige Tools in der Benutzeroberfläche vor Ihnen verbergen, verwenden Sie also so etwas wie ls -a).

Findet Nemo
quelle