portability of *.elc

Shuhei KOBAYASHI shuhei @ aqua.ocn.ne.jp
1999年 11月 10日 (水) 16:46:13 JST


>>>>> In <htx4seu52k3.fsf @ mulelab3.etl.go.jp>,
>>>>> tomo @ etl.go.jp (守岡 知彦 /  MORIOKA Tomohiko) wrote:
> > 真面目な話, 何らかの方法でこの macro が利用できれば, default で
> > は一切展開しない状態にしておいて, APEL を使用する application の
> > 都合によっては展開を指示する事もできるので理想的なのですが.
> > ;; この macro の定義と inline 宣言だけを含んだ apel-inline.el で
> > ;; も提供しますか?  (require 'apel-inline) すると関数が展開され
> > ;; る, と.
> むしろ install の仕方によって展開を指示できた方が良いと思います。

APEL の install 時に展開する・しないを決めてしまうわけですか?
常に展開しても良い場合(単一の emacs で使用する場合など)はそれでも良い
と思いますが, そうではない場合には APEL を利用する application の側で,
あるいは user の側で個別に指示できないと困ると思います.

APEL のどこかに

(eval-and-comile
  (defvar apel-enable-inline nil))

(static-if apel-enable-inline
    ;; function inlining is enabled by default.
    (require 'apel-inline)
  ;; function inlining is enabled if `apel-enable-inline' is non-nil,
  ;; before loading this file.
  (when apel-enable-inline
    (require 'apel-inline)))

みたいなのを入れておいて, APEL の install 時に `apel-enable-inline' を
APEL-CFG の中で設定するような方式であれば, どちらの要望にも対応できるの
ではないでしょうか?
;; proclaim-inline の定義を切り替えるというのも一瞬考えたけど, ちょっと
;; 邪悪だな(^^;;;


> GNU Emacs 20.2 を持っている人は 20.2 で compile すれば良い訳ですが、

といった判断は version 間の差異に関する知識が必要なわけですが, それが
普及するとは思えないです.

> それでもだめですか? loop の中で使うことが多いので、結構悲しいと思い
> ますが。

char-next-index だけなら実はそれほど効率に影響するとは思っていないので
すが, そうでないものがあるかもしれないので, Elib のように macro 版と関
数版を用意して, `apel-inline' のような option で APEL の install 時に,
あるいは APEL を利用する application で切り替えるというのならいいと思い
ます.

;; *.elc の共有の道を閉ざす事に反対なので, 方法が user option のような
;; 目に見える形で用意されていれば default で展開されるようになっても構
;; わないです.
-- 
Shuhei KOBAYASHI




More information about the APEL-ja mailing list