[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: xml.el



>>>>> In [emacs-w3m : No.05336] 土屋さん wrote:

山> mule -batch -eval '(put (quote char-after) (quote byte-compile) nil)'\
山> -f batch-byte-compile xml.el

土屋さん> なるほど.私の手元の Mule2.3 は char-after() が built-in
土屋さん> function だという変てこな代物なので気が付かなかったんですね.
土屋さん> 改造してしまうと,動作確認向きではなくなるなあ….

いや、char-after() が built-in なのは変ではないです。:)
最初ぼくは単に warning を抑制するつもりしか無かったんですが、後
で変なことに気が付いて、これにはまりはじめました。

Mule 2.3 では char-after() は一つの引数を要求しますが、後期の
Emacsen は引数無しでも (point) に対して動作します。その違いを吸
収するコードが poe.el に入っているんですが、何でそれは有効なのか?
bytecomp.el を眺めてみると、char-after() を使う関数を compile し
た場合に、(funcall 'char-after) の形式ではなくて char-after() に
相当する byte-code が生成されて関数に埋め込まれるように見えるん
ですよ。でも実際にはそんなことは起きなくて、T-gnus などは問題無
く動作します。

なお、さっきのメールに書いた compile の手法ですが、たぶん以下の
方が良いです。たとえ xml.el の中で (require 'poe) していても。

mule -batch -l poe -eval '(put (quote char-after) (quote byte-compile) (quote byte-compile-zero-or-one-arg))' -f batch-byte-compile xml.el

ま、warning を気にしなければどうでもいいことですが。:)

土屋さん> regexp-opt.el と供に,存在しない環境では自動でインストールさ
土屋さん> れるようになったら嬉しいなと思います.余分なものがインストー
土屋さん> ルされるのが嫌な人のためには,configure のオプションで制御で
土屋さん> きると完璧.

うむ、それはいいですね。しかし Mule 2 では configure 時には見え
ない load-path の場所に regexp-opt.el などがあるかもしれないのが
困ったところ。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
;; 勢いが付いてしまったので、sb-cnet.el の書き換えは自主番組でや
;; ろうと思います。:)