El-Getとinit-loaderを組み合わせて使っていて, この問題に遭遇しました. 結局のところ気をつけなければいけないのは, init-loaderがロードするファイルの中で(el-get 'sync)を呼ばないということです.
発生条件
-
init-loaderを次のように
el-get-bundle!
している.(el-get-bundle! 'init-loader (setq-default init-loader-show-log-after-init nil) (init-loader-load))
init-loader-load
するファイルの中で(el-get 'sync)
している.
メカニズム
el-get-bundle!
の第2引数以降は ディレクトリにファイルとして保存されるのですが, *Backtrace*
によれば (el-get 'sync)
がこのファイルをロードします. 結果として相互再帰的なロードが行われます.
同じ理由により el-get-bundle!
の代わりに el-get-bundle
を, (el-get 'sync)
の代わりに (el-get)
や (el-get nil '(init-loader))
を呼んでもやはり同じエラーが出ます.
解決法
(el-get 'sync)
をinit-loaderがロードするファイルの外に移動させます. 例えばel-get-bundle!
の呼出しの後に記述します.