APEL version

Keiichi Suzuki keiichi @ nanap.org
1999年 11月 9日 (火) 17:25:37 JST


>>>>> apel-ja の No. 00034
>>>>> Message-Id: <86r9i1vxmh.fsf @ aqua.ocn.ne.jp> で、
>>>>> "小林" == Shuhei KOBAYASHI <shuhei @ aqua.ocn.ne.jp>さま曰く...

>> product-provide (FEATURE NAME &optional SUB-VERSION SUB-CODE-NAME)
>> 
>> とし、 NAME に指定するものは、あらかじめ product-define したものとし
>> ます。

小林> あらかじめ product-define しておくのには賛成ですが, SUB-VERSION と
小林> SUB-CODE-NAME には何が入るのですか?
小林> ;; あまり code-name が氾濫するのは勘弁してほしい.

私もあまりうれしくないのですが、 gnus の一部に固有のバージョン情報を持つ
ものが一部ありますので、こういう需要もあるかな? というつもりです。

;; 不要という方向であれば、積極的に賛成します。

ふと思ったのですが、 &optional doc-string というのはどうでしょうか?

>> Compile 時に define-product した、バージョン情報を product-provide
>> した *.elc に埋め込んでしまうようにすると良いと思います。

小林> (特に non-ASCII の code-name を使用する場合には) 断固反対.
小林> code-name の non-ASCII な文字列は *.elc の共有を妨げる大きな要因で
小林> す.

code-name を除く product-name と vertion だけは、 *.elc に埋め込むという
のもダメでしょうか?

小林> それから, product-name は branch によって変更する事が多いので,
小林> 各 *.el に product-name を埋め込むのも反対. product 情報はその product
小林> を代表する feature を介して扱う方が良いと思います.
小林> ;; 後者の方が良いということ.
小林> ;; (defalias 'product-find 'product-find-by-name)
小林> ;; (defalias 'product-find 'product-find-by-feature)

これはたしかにそう思います。

小林> product-define は apel-version.el のような専用の file で行ない, この
小林> file は (特に non-ASCII の code-name を使用する場合には) byte-compile
小林> せずに install することを提案します.
小林> ;; こうすれば FLIM や SEMI の編集中に code-name が不用意に code 変換
小林> ;; されてしまうことも避けられます.

良いと思います。

;; 先日 FLIM の ChangeLog を書くのに苦労しました。 ctext でもダメだった
;; ので、結局 raw-text で。 ^^;;;;

>> product.el に...
>> 
>> (define-product "APEL" '(9 23) "Nippori")
>> (provide 'product)
>> 
>> としておいて、構成する各ファイルには...

小林> product.el は汎用なので, APEL の version を宣言する場所は分けた方が
小林> 良いと思います.

;; あ、これは元になった守岡さんのメイルにあったファイル名の例をそのまま
;; 使っただけです。

小林> いくつか相異点があるので私も書いてみました.
小林> product の定義は apel-version.el で行ない, 各 file で apel-version.el
小林> を require するようになっています.

小林> ;; The following two macros are defined just for completeness.
小林> (defmacro product-set-name (product name)
小林>   "Set name of PRODUCT to NAME."
小林>   (` (aset (, product) 0 (, name))))
小林> (defmacro product-set-version (product version)
小林>   "Set version of PRODUCT to VERSION."
小林>   (` (aset (, product) 1 (, version))))

;; これは削りたいな...

それと、昨日のメイルに書き忘れたのですが、 emacs に関する情報をこのファ
イルの中で product-define してしまいませんか?

;; 依存している product とリンクできるようにするなんてこともちょっと頭の
;; 中をよぎったりしました... :-)
-- 
鈴木圭一 / keiichi @ nanap.org
PGP finger print (DH/DSS)
0B32 B37E 6DE9 3BC1 68A4  4089 7AAF 2B03 ECBD 614B




More information about the APEL-ja mailing list