FLIM 1.14.5 bug-fix
Katsumi Yamaoka
yamaoka @ jpl.org
2003年 6月 27日 (金) 08:28:33 JST
本題の前に一言:
ぼくは APEL XEmacs package を無くしたいです。まさに wl-en で取り
ざたされているように、XEmacs package ではない APEL をあてにして
いるプログラムにとって、SUMO にも含まれてしまっているあれは、非
常にうとましいものです。しかし、APEL XEmacs package の方を改善す
れば良いと思う人がいたら、ぼくは反対しません。頑張って下さい。:)
>>>>> In [apel-ja : No.00863]
>>>>> Shuhei KOBAYASHI <shuhei @ aqua.ocn.ne.jp> wrote:
> APEL で再定義されたという情報が describe-function では表示されない
> のは load-history が更新されないからだという話は既出ですよね?
はい。
> そして, 以下のような file-level ではない定義を byte-compile すると
> (cond
> (SOME-CONDITION
> (defalias 'kar 'car)
> (defmacro kaar (list) `(car (car ,list)))
> (defsubst kadr (list) (car (cdr list)))
> (defun kddr (list) (cdr (cdr list)))
> (defvar kar "KAR")))
> defalias (内部的に load-history を更新する) と
> defvar (byte-compiler が load-history を更新する byte-code を生成する)
> 以外の defmacro/defsubst/defun は fset に展開されるのが原因だという話
> も前回 XEmacs 方面から苦情が出た時に説明したと思います.
覚えています。ターンブルさんが指摘していたっしゃっるその問題が、
ぼくには当たり前のことだったのでコメントしなかったんですが、改め
て APEL 10.5 と XEmacs package の pym.el を眺めてみると、声高に
非難されるような結果は生まないように見えます。ターンブルさんと、
それに相槌を打っているぼくは、実はもっと昔の APEL の記憶に基づい
た見当違いをしているかもしれません。
ただ、絶対に (X)Emacs が提供しているはずだと思っていた関数が、あ
る日ふと C-h f してみると loaded from poe.elc と表示されていると
いうようなことは、よく経験しました。それに気が付かずに、APEL を
使っていないパッケージの開発元にパッチを送ってしまった失敗は、ぼ
く以外の人もやったことがありますよね。もちろん、それは APEL が非
難される理由にはなりません。
でも、実はそういう失敗をしたときの心理的な衝撃は、ぼくの場合は大
きいのです。早くに自分で自分の間抜けさに気がついて、他人に迷惑を
かけてしまわなかったとしてもです。
> APEL では回避策を入れているのですが, 部分的に漏れがありそうだというの
> と, load-history の構造が変化すると問題が出るという話もしたと思います.
そうでしたね。えーと、ちょっと話がそれますが、ぼくは emacs-w3m
の中でごく一般的な関数に advice をかける場合に、docstring の第一
行目を "Advised by emacs-w3m." としています。load-history を主に
参照するのは人間だと思うのですが、だとすれば "Defined by poe.el."
などと書くのは、さらに効果的ではないでしょうか。
> それでは, byte-compiler を以下のように修正して load-history の更新を
> defalias に押し付けたらどうだろうか, という話はしていましたっけ?
いや、記憶にありません。これはぜひ FSF に提案していただきたいで
す。それが反映された Emacs が出て 2〜3年もすれば、必ずやっておい
て良かったと思うでしょうから。
--
Katsumi Yamaoka <yamaoka @ jpl.org>
More information about the APEL-ja
mailing list