Upgrading to emacs-24.4 from 21.X, threw a "Symbol's function definition is void" error
問題
emacs-21.Xを24.4 (current version)にhomebrew経由でアップグレードした時に、Symbol's function definition is void:package-desc-vers
というエラーがでて困った。package.elは、emacsの設定ファイルをマネージメントするやつで、確か24.4から標準で入っている。
調査
grep -R package-desc-vers ~/emacs.d/
すると、package.el、melpa.el関連で幾つかpackage-desc-vers()関数をcallしているファイルが分かった。- Symbol's function definition is void: package-desc-vers · Issue #110 · purcell/emacs.d · GitHub 同じ状態のissueもある。
解決
package-desc-vers()
はpackage--ac-desc-version()
に置き換わっていた模様。emacs/package-x.el at master · emacs-mirror/emacs · GitHubを参照。
なので、古いやつをpackage--ac-desc-version()
へと関数名をちまちま書き換えたら、動いた。editorの設定するのめんどくさいし、ずっと動いててほしいから、後方互換を捨てないでほしい。せめて、deprecated warningを出す、というおもてなしが欲しかった。