APEL version
守岡 知彦 / MORIOKA Tomohiko
tomo @ etl.go.jp
1999年 11月 8日 (月) 18:55:44 JST
>>>>> In [apel-ja : No.00023]
>>>>> "圭一" = Keiichi Suzuki <keiichi @ nanap.org> wrote:
圭一> 他の application でエラーが発生したなどの質問をされたときに、
圭一> load されている APEL のバージョンを簡単に調べてもらえるので、便
圭一> 利ではないかと思います。
総論賛成ということなので、各論に入りましょう。
守岡> (1) Version 名を調べるための機構を付ける
守岡> (1-1) どこに付けるか?
守岡> (1-1-4) version 名を記載するための module を新設し、APEL の各
守岡> module はそれを require するようにする
守岡> (1-2) どのような界面を用いるか?
守岡> (1-2-2) 関数
守岡> (1-3) code-name は付けるか?
圭一> これはどちらでも構いませんが、 APEL には要らないような気がします。
もし、APEL に version 名関連の機構を入れるなら、現在、FLIM に入れてい
る mime-product-* と同等の機能を持つ機構を実装し、FLIM/SEMI ではそれを
使うのが良いかなと思います。
そうすると、例えば、product という抽象型を考え、
product-name (PRODUCT)
PRODUCT の名前を返す。
product-version (PRODUCT)
PRODUCT の version 番号 (整数の list) を返す。
product-code-name (PRODUCT)
PRODUCT の code name (文字列) を返す。
というような関数を用意すれば良いでしょうか。
また、PRODUCT の実体は vector だとしても、定数を直接見せる(ことを保証
する)のは後々厄介ですから、
define-product (NAME VERSION &optional CODE-NAME)
名前が文字列 NAME, version 番号が VERSION (整数の list) である
product を定義し、その product object を返す。
CODE-NAME は code name を表す文字列である。
find-product (NAME)
NAME に対応する product を返す。
見付からなかった場合は nil を返す。
みたいなのを設け、内部表現を隠蔽するのが良いかも知れません。
例えば、
(define-product "APEL" (9 23) "Nippori")
という風に定義し、
(product-version (find-product "APEL"))
で APEL の version を得ることができるという訳です。
;; 実体は例えば hash (XEmacs, Emacs 21) とか obarray で。
あるいは、
provide-product (FEATURE NAME &optional VERSION CODE-NAME)
FEATURE が product 情報付き feature であることを告知する。
NAME は product の名前を表す文字列である。
NAME に対応する product が存在しない場合、NAME に対応する product
object を生成する。この時、VERSION は番号を表す整数の list であり、
CODE-NAME は code name を表す文字列である。
find-product-by-feature (FEATURE)
FEATURE に対応する product を返す。
見付からなかった場合は nil を返す。
というようなものを設け、feature と対応させると良いかも知れません。
例えば、
(require 'poe)
:
(provide-product 'poem "APEL")
みたいに書いて、poem が APEL の一部であることを宣言できます。
こういうのと
(provide-product 'product "APEL" '(9 23) "Nippori")
が入った product.el を設け、(require 'product) することで、こうした
service が利用できます。
;; なんかやりすぎな気がしますが。(^_^;
;;; おまけに方向があさってに入ってしまった気も。(^_^;;
というのが私の案ですが、他の方、特に管理人の御意見をお伺いしたいです。
;; ここで述べた案は議論の叩き台として挙げただけなので、あんまり因われ
;; ないでください。
--
┯━…‥・懐かしい未来の記憶をふと思い出しかけた・‥…━━┯━━━┯━
││ ─ │ ─ / ─ ┼─ ┬ ─ ─┼ ┬┴─
┼┼─┼|〓━─┼ 守岡 知彦 (MORIOKA Tomohiko) <tomo @ etl.go.jp>─ ─┬
┻┻━┻━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
More information about the APEL-ja
mailing list