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?

Nom
la source

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.

Malabarba
la source
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).

Le monde de nemo
la source