sci

最果て風呂

忘れ去られてゆく過去

Mew を起動しようとしたら、次のメッセージが出て動かなくなってしまいました。問題は Mew ではなくて、どうやら mhc にありそうです。

Setting up Mew world...
eval-buffer: Loading ‘/Users/umd/elisp/mhc-snap20100807/emacs/mhc-summary.el’: old-style backquotes detected!

StackOverflow によると、"`" という関数があるようで、これは下記のように簡略して書けるようになったとのこと。

-  (` (and (stringp (, string)) (insert (, string)))))
+  `(and (stringp ,string) (insert ,string)))

(` (...) ) の大きい括弧が不要になって、(, string) の括弧もはずれて ,string のようになるのだそうです。要は "`" や "," や ",@" を使うために括弧が不要になったよ!ということなんですね。

日本語での情報も探してみると、山本さんのページが見つかりました。バッククォート自体はこの説明が理解しやすい。

Emacs 関係の日本語ドキュメントは古いものばかりです。Backquote の説明は、古い文章では「12.マクロ」内の「12.5 バッククォート」にあり、最新の文章では「10 Evaluation」内の「10.3 Backquote」にあります。

古い日本語ドキュメント内には下記のような記載がされています。

19.29版よりまえのEmacsの旧版では ... (略) ... この構文も受け付けますが, これはEmacsの旧版との互換性のためであり, 新しいプログラムでは使わないことを勧めます.

この時すでに Obsolete になっていたんですね。19.29 のリリースは 1995-06-19 とのことなので、廃止されるまで 22 年間も保守されてきたようです。すごい!

ということで、mhc の対象部分は手動で修正して動くようになりました。今でも Emacs を使っているのは Mew と mhc と howm と trr と SKK のためなのです。

ところで、最新のドキュメントには上記で引用した部分がありませんので、このような構文 (` (...)) があったという事実は忘れ去られてしまうのでしょうね。

P.S. lookup もこの Backquote 構文を使っていたので修正するハメになりました(>_<)