Como executo várias versões do Emacs com o mesmo .emacs.d

8

Alternativamente, eu executo 24.5 e 25.0.50. Infelizmente, os pacotes instalados e compilados a partir do 25.0.50 não funcionam com o Emacs 24.5 ( cl-struct-defineé um culpado comum).

Uma solução trivial é não compilar nada com bytes. Isso torna as coisas bem lentas, no entanto.

Como posso usar pacotes compilados (para desempenho) usando o mesmo .emacs.dpara 24.5 e 25.0.50? Eu também ficaria bem com 24,5 ignorando os arquivos compilados.

Clemente
fonte
Essa pergunta é semelhante, mas não exatamente a mesma: ela se concentra em manter facilmente várias versões lado a lado para fins de teste, mas não discute arquivos compilados por bytes.
Clément
3
Eu defini package-user-dire alguns outros diretórios e arquivos com base na versão do emacs . Posso escrever uma resposta detalhada quando estou no computador.
precisa
@kaushalmodi: Isso não me forçará a instalar cada pacote duas vezes?
Clément
Sim. Cada pacote é instalado várias vezes (e cada pasta de instalação terá os arquivos compilados de bytes específicos da versão do emacs). Mas você não faz isso manualmente. Eu mantenho um alist no meu init.ele todos esses pacotes são instalados automaticamente na inicialização do emacs (se ainda não estiver instalado). Você pode até usar a :ensurepalavra - chave de use-packagepara instalar automaticamente os pacotes.
precisa

Respostas:

3

Coloque os arquivos compilados em bytes para diferentes versões do Emacs em diferentes diretórios. Faça o seu load-pathcondicionada à versão Emacs você está executando, de modo que você carregar as bibliotecas compiladas bytes apropriadas.

Desenhou
fonte
2
(IMO, é uma pena que o Emacs dev não se esforce mais para manter a compatibilidade com os arquivos compilados em bytes. Costumava-se usar uma biblioteca compilada usando uma versão mais antiga em uma versão mais recente. Você pode não ter sido capaz de tirar partido de algumas características novas, mas em geral não havia nenhum problema Este ainda é o caso para a maioria das coisas, mas para cada vez menos, infelizmente)..
tirou
Obrigado, é uma boa ideia. Existe uma maneira de fazer o gerenciador de pacotes colocar arquivos elc nesse diretório específico da versão? Algum tipo de destino padrão para o byte-compile-file talvez?
Clément
Não sei; desculpa. Espero que outra pessoa responda a essa pergunta. Não sou especialista em pkg mgr. Eu pensaria (e espero) que a resposta seja sim, que forneça uma maneira fácil de fazer isso.
Tirou