version compilée en octets des fichiers elisp


12

J'ai les deux .elet la version compilée ( .elc) d'un fichier elisp. Par accident, je supprime le .elfichier. Puis-je récupérer le .elfichier depuis sa .elcversion? Un .elcfichier sans son .elfichier est-il fonctionnel?

Réponses:


12

J'ai à la fois .el et la version compilée en octets (.elc) d'un fichier elisp. Par accident, je supprime le fichier .el. Puis-je récupérer le fichier .el à partir de sa version .elc?

En pratique, non.

En théorie, vous pouvez utiliser le fichier elc pour produire un fichier el avec des définitions lisibles par l'homme. Cependant, cela ne ressemblerait probablement pas au fichier d'origine que vous avez supprimé, en raison des macros et des optimisations du compilateur, et même dans ce cas, je ne connais aucune bibliothèque qui le fasse.

Un fichier .elc sans son fichier .el est-il fonctionnel?

Oui, Emacs est heureux de charger un .elcfichier entièrement par lui-même. Aucun .elfichier n'est nécessaire du tout.

En fait, même lorsque vous avez les deux dans le même répertoire, Emacs chargera généralement l'elc de toute façon.


Vous n'avez pas besoin de "les deux dans le même répertoire ". Vous n'avez pas besoin des deux. Le * .elc suffit, au moins si votre version Emacs est compatible avec elle (par exemple avec la version Emacs à partir de laquelle elle a été compilée).
Drew

@Name La deuxième phrase est une information complémentaire. La réponse est oui". Emacs chargera très bien les fichiers 'elc' sans le fichier '.el'.
Malabarba du

2
"En fait, même si vous avez les deux dans le même répertoire, Emacs chargera généralement l'elc de toute façon." .. Si load-prefer-newerest défini sur tdans emacs 24.4+, le plus récent du .el / .elc sera chargé.
Kaushal Modi

3

Recherchez un *.el~fichier - il peut y avoir une sauvegarde Emacs de votre *.elfichier manquant (que certains outils vous cacheront dans leur interface utilisateur, utilisez donc quelque chose comme ls -a).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.