Emacs 24.3 o inferior
No hay una forma integrada de evitar que se carguen estos archivos antiguos, pero hay formas fáciles de deshacerse de ellos.
- Usted puede volver a compilar todo el directorio elpa llamando al:
M-x byte-recompile-directory RET ~/.emacs.d/elpa/
.
Esto debería deshacerse de los archivos obsoletos.
- Puede usar el
paquete de compilación automática y activar el
auto-compile-on-load-mode
cual puede compilar archivos antes de que se carguen.
Emacs 24.4
Sí, y resulta ser bastante simple. La load-prefer-newer
variable sirve precisamente para este propósito.
(setq load-prefer-newer t)
Desafortunadamente, no funcionará cuando algún código se dirija específicamente al
.elc
archivo, como (load "server.elc")
. Pero debería ser suficiente siempre que esté usando require
s o llamando load
sin sufijo, lo que debería.
Del documento:
load-prefer-newer es una variable definida en lread.c.
Su valor es nulo
Documentación:
No nulo significa que la carga prefiere la versión más reciente de un archivo.
Esto se aplica cuando un sufijo de nombre de archivo no se especifica explícitamente y load está probando varios sufijos posibles (consulte sufijos de carga y sufijos de repetición de archivo de carga). Normalmente, se detiene en el primer archivo que existe a menos que especifique explícitamente uno u otro. Si esta opción no es nula, verifica todos los sufijos y usa el archivo más nuevo.
Tenga en cuenta que si personaliza esto, obviamente no afectará a los archivos que se cargan antes de que se lean sus personalizaciones.
auto-compile
Instaría a las personas a usar la biblioteca (¡excelente!) En Emacs 24.4+, así como a continuación. Es una verdadera solución de configurar y olvidar.load-prefer-newer
solo garantiza que continuará ejecutando código lento sin compilar después de que su código compilado se desactualice.