Comment exécuter plusieurs versions d'Emacs avec le même .emacs.d

8

Je lance alternativement 24,5 et 25,0,50. Malheureusement, les packages installés et compilés à partir de 25.0.50 ne fonctionnent pas avec Emacs 24.5 ( cl-struct-defineest un coupable commun).

Une solution triviale est de ne rien compiler en octets. Cela rend les choses assez lentes, cependant.

Comment puis-je utiliser des packages compilés (pour les performances) tout en les utilisant .emacs.dpour les versions 24.5 et 25.0.50? Je serais également d'accord avec 24,5 en ignorant les fichiers compilés.

Clément
la source
Cette question est similaire, mais pas exactement la même: elle se concentre sur la conservation facile d'un tas de versions côte à côte à des fins de test, mais elle ne traite pas du tout des fichiers compilés en octets.
Clément
3
J'ai défini package-user-diret quelques autres répertoires et fichiers basés sur la version emacs . Je peux écrire une réponse détaillée lorsque je suis devant un ordinateur.
Kaushal Modi
@kaushalmodi: Cela ne m'obligera-t-il pas à installer chaque paquet deux fois?
Clément
Oui. Chaque paquet est installé plusieurs fois (et chaque dossier d'installation aura des fichiers compilés en octets spécifiques à cette version d'emacs). Mais vous ne faites pas cela manuellement. Je maintiens une liste dans mon init.elet tous ces paquets sont installés automatiquement au démarrage d'emacs (s'ils ne sont pas déjà installés). Vous pouvez même utiliser le :ensuremot clé de use-packagepour installer automatiquement les packages.
Kaushal Modi

Réponses:

3

Placez les fichiers compilés en octets pour différentes versions d'Emacs dans différents répertoires. Faites votre load-pathcondition à la version Emacs que vous exécutez, afin de charger les bibliothèques compilées en octets appropriées.

A dessiné
la source
2
(IMO, il est dommage qu'Emacs dev ne fasse plus d'effort pour maintenir la compatibilité ascendante pour les fichiers compilés en octets. Auparavant, vous pouviez utiliser une bibliothèque compilée en utilisant une version plus ancienne dans une version plus récente. Vous pourriez ne pas avoir pu profiter de quelques nouvelles fonctionnalités, mais en général il n'y avait pas de problème. C'est toujours le cas pour la plupart des choses, mais de moins en moins malheureusement.)
Drew
Merci, c'est une bonne idée. Existe-t-il un moyen de faire en sorte que le gestionnaire de paquets place les fichiers elc dans ce répertoire spécifique à la version? Une sorte de destination par défaut pour le fichier de compilation d'octets peut-être?
Clément
Dunno; Désolé. J'espère que quelqu'un d'autre répondra à cette question. Je ne suis pas un expert du pkg mgr. Je pense (et j'espère) que la réponse est oui, que cela fournit un moyen facile de le faire.
Drew