Emacs 24.4リリース!ファーストインプレッション
今日、1年半ぶりにEmacsの新バージョン(24.4)がリリースされたので、
さっそくインストールしてみました。
注意すべき点は大きくわけて3つです。
- パッケージでエラーになるので回避方法
- Emacs組み込みWebブラウザEWW!
- ついにバイトコンパイル問題に決着!
ビルド
僕のところのconfigureビルドオプションはこんな感じです。
$ wget -O- http://ftp.gnu.org/gnu/emacs/emacs-24.4.tar.xz | tar xJvf - $ cd emacs-24.4 $ ./configure --disable-largefile --with-x-toolkit=motif --without-toolkit-scroll-bars \ --without-xaw3d --without-xim --without-compress-info --without-sound --without-pop \ --without-sync-input --without-xpm --without-tiff --without-rsvg --without-gconf \ --without-gsettings --without-selinux --without-gpm --without-makeinfo --with-x && make \ && sudo make install
コンピュータの性能は一級品ではあるが、
とにかく無駄を徹底的に省くスタイルです。
packageが使えない!?→解決
まず、起動していきなりエラーが起きました。
どうやら (package-initialize) で
Debugger entered--Lisp error: (void-function package-desc-vers) package-desc-vers([(1 3) nil "Interface to ack-like source code search tools" tar ((:keywords "tools" "processes" "convenience") (:url . "https://github.com/leoliu/ack-el"))])
NEWSによると原因はこれですね。
The format of `archive-contents’ files, generated by package
repositories, has changed to allow a new (fifth) element in the data
vectors, containing an associative list with extra properties.
(For example, `describe-package’ uses the `:url’ extra property to
display a “Homepage” header.)
package.elで使っているデータ構造が変更されたので、
melpaのパッケージがエラーを起こしているようです。
package-desc-vers と
いう関数が削除されたので
package–ac-desc-version
という関数を使えということです。
こういう非互換な変更はちゃんとNEWSに書いてほしいものです(苦笑)
正直ものすごい迷惑…
これを24.3/24.4で実行したところ
(package-initialize) (print (list :package-desc-vers (fboundp 'package-desc-vers) :package--ac-desc-version (fboundp 'package--ac-desc-version)))
$ emacs-24.3 -script package.check.el (:package-desc-vers t :package--ac-desc-version nil) $ emacs-24.4 -script package.check.el (:package-desc-vers nil :package--ac-desc-version t)
このように関数名が変わってしまいました。
対処するには以下の設定を加えます。
(fset 'package-desc-vers 'package--ac-desc-version)
quelpa-self-upgradeでエラー
package.elの自然な拡張形quelpa を使っている人は注意です。
quelpa-self-upgrade でエラーになってしまいます。
これもおそらくpackage.elのデータ構造変更が原因と思われます。
quelpa-self-upgradeはquelpa.elを自動更新するだけなので、
その行はコメントアウト(とりあえず行頭に ;; を置く)してください。
それまではバッチモードで更新すればよいです。
$ emacs -Q -batch -f package-initialize -f quelpa-self-upgrade
EWW: Emacs組み込みWebブラウザ
ついにEmacs標準にWebブラウザ(テキストブラウザ)までついてきました!!!!
一言で言うと、 emacs-w3m が標準で使えるようなものです。
インライン画像も表示できますし、
libxml2を使っているので速度も申し分ありません。
Windowsでemacs-w3mの設定に悪戦苦闘している人には嬉しい話ですね。
Fig1: M-x eww http://www.gnu.org/software/emacs/
load-prefer-newer: バイトコンパイル忘れでハマることはもうない
load-prefer-newer 変数は、 バイトコンパイル問題 を解決してくれます。
従来のEmacsではバイトコンパイルされていないファイル(.el)の方が新しい場合、
古いバイトコンパイル済みのファイル(.elc)がろロードされましたが、
(setq load-prefer-newer t)
を設定することで、新しい方を読み込んでくれます。
今更な感じはしますが、嬉しいことです。
eshell $ cd /tmp eshell $ echo '(setq x "old")' > test.el eshell $ byte-compile-file test.el eshell $ echo '(setq x "new")' > test.el eshell $ emacs -Q -batch -eval '(progn (setq load-prefer-newer nil) (load "/tmp/test")(print x))' Loading /tmp/test (compiled; note, source file is newer)... "old" eshell $ emacs -Q -batch -eval '(progn (setq load-prefer-newer t) (load "/tmp/test")(print x))' Loading /tmp/test.el (source)... "new"
view-modeの操作性がよくなった!
view-mode で何も設定しなくてもSPCでスクロール、
S-SPCで逆スクロールしてくれます。
デフォルトでページャらしくなりました。
僕はとっくの昔にキーを設定していますが、
デフォルトで使いやすくなるのはいいですね!
C-x 2: split-window→split-window-below
split-window (C-x 2) はコマンドではなくなったので、
もしキーに割り当てているのならば
split-window-below に置き換えてください。
比較関数が複数個の引数を取るようになった
比較演算子(=, <, >, <=< , >=)が
複数の引数を取るようになりました。
なぜ今まで2つしか取らなかったのかが意味不明です。
(< 1 2 3) ; => t
with-eval-after-load: eval-after-loadのマクロ版
with-eval-after-load は eval-after-load のマクロ版です。
eval-after-loadはquoteとprognが必要で
すげーダサかったけど、with-eval-after-loadを使えば
すっきり書けます。
(eval-after-load 'foo
'(progn
(setq x 1)
(setq y 2)))
↓
(with-eval-after-load 'foo
(setq x 1)
(setq y 2))
総評
とりあえず、package.el関連のエラーに悩まされると思いますが、
今のところ他に目立つエラーは出ていません。
ただ、Emacs初級者はリリース直後のバージョンには手を出さない方がいいです。
なぜなら、Emacs本体に非互換な変更が含まれるので、
使っているパッケージがエラーになることがあるからです。
パッケージの作者の対応待ちがあるので、
あせらず数週間くらい待ってれば安定してきます。
もちろん自力で問題解決できる人ならばすぐにアップグレードしてもいいです。
他にもここでは述べていない細かい変更点があるので、
追々紹介していきたいと思っています。
Emacsネット塾(メルマガ)
『Emacsの鬼るびきちのココだけの話』
開講中!
★月々527円!初月無料★
★無制限メールコンサル★
★個人的なトラブル解決いたします★
★懇切丁寧な指導★
↓Emacsを手足のように扱いたい人はどうぞ↓
http://www.mag2.com/m/0001373131.html
タグ
2014/10/21 | コメント/トラックバック(0) | トラックバックURL |
カテゴリー:Emacs Emacs 24.4