Emacs 24.3 або нижче
Не існує вбудованого способу запобігання завантаженню цих старих файлів, але є прості способи їх позбутися.
- Ви можете перекомпілювати весь каталог Elpa по телефону:
M-x byte-recompile-directory RET ~/.emacs.d/elpa/
.
Це повинно позбутися застарілих файлів.
- Ви можете використовувати
пакет для автоматичного компілювання та активувати,
auto-compile-on-load-mode
який може компілювати файли перед завантаженням.
Emacs 24.4
Так, і це виявляється досить просто. load-prefer-newer
Мінлива служить саме цієї мети.
(setq load-prefer-newer t)
На жаль, це не буде працювати , якщо якісь - то коди спеціально орієнтована на
.elc
файл, наприклад (load "server.elc")
. Але цього повинно вистачити до тих пір, поки ви використовуєте require
s або дзвоните load
без суфікса, що вам слід.
Від док.
load-vole-newer - це змінна, визначена в lread.c.
Його значення - нульове
Документація:
Non-nil означає, що завантаження віддає перевагу новітній версії файлу.
Це застосовується, коли суфікс імені файлу не визначений явно і завантажує спроби різних можливих суфіксів (див. Суфікси load та file-rep-rep-суфікси). Зазвичай він зупиняється на першому файлі, який існує, якщо явно не вказати той чи інший файл. Якщо цей параметр не має нульового значення, він перевіряє всі суфікси та використовує той, який файл є останнім.
Зауважте, що якщо ви налаштуєте це, очевидно, це не вплине на файли, завантажені до того, як ваші налаштування будуть прочитані!
auto-compile
Бібліотеку в Emacs 24.4+, а також нижче. Це справжнє рішення конфігурації та забуття.load-prefer-newer
гарантує лише те, що ви продовжуватимете виконувати повільний некомпільований код після того, як ваш скомпільований код застаріє.