APEL version

Shuhei KOBAYASHI shuhei @ aqua.ocn.ne.jp
1999年 11月 9日 (火) 10:54:11 JST


こばやしです. 気になるのでちょっと復活.

>>>>> In <u7ljt2n26.fsf @ kei.nanap.org>,
>>>>> Keiichi Suzuki <keiichi @ nanap.org> wrote:
> ただ、名称は define-product -> product-define のように prefix にして
> おいた方が無難ではないでしょうか?

最初は define-RECORD で定義して RECORD-SLOT/RECORD-set-SLOT で操作する
のが Lisp 的かなと思ったのですが, これには賛成しておきます.

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

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

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

(特に non-ASCII の code-name を使用する場合には) 断固反対.
code-name の non-ASCII な文字列は *.elc の共有を妨げる大きな要因です.
;; 本来 non-ASCII な文字列を含まない FLIM や SEMI は Mule 19.34 と
;; Emacs 20.[234] などで *.elc を共有する事も可能なはずです.
;;; APEL のいくつかの defmacro/defsubst を defun に変換する必要あり.

それから, 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 変換
;; されてしまうことも避けられます.


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

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

> こんな感じでしょうか?
>
> [2 product.el <application/octet-stream (7bit)>]

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

-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: product.el
型:         application/octet-stream
サイズ:     4511 バイト
説明:       無し
URL:        <http://lists.chise.org/pipermail/apel-ja/attachments/19991109/e0952083/attachment-0002.obj>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: apel-version.el
型:         application/octet-stream
サイズ:     1783 バイト
説明:       無し
URL:        <http://lists.chise.org/pipermail/apel-ja/attachments/19991109/e0952083/attachment-0003.obj>
-------------- next part --------------

この場合, poem 等の最後は以下のようになります.

(require 'product)
;; `product-provide' 内で (provide 'poem) する方が良い?
;; byte-compiler 的問題はないはずだけど...
(product-provide (provide 'poem)
  (product-find-by-feature (require 'apel-version)))

-- 
Shuhei KOBAYASHI
本格復活は新しい PC を買うまで待ってください. (いつになるのか...)


More information about the APEL-ja mailing list