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