APEL version

守岡 知彦 / MORIOKA Tomohiko tomo @ etl.go.jp
1999年 11月 9日 (火) 20:09:18 JST


>>>>> [apel-ja : No.00064] にて
>>>>> “修平”= Shuhei KOBAYASHI <shuhei @ aqua.ocn.ne.jp> さま曰く:

修平> > 「product-version XX以上の feature が provide されているか判定」-p
修平> > みたいなのが general に用意されてると便利かもしれないと思います。
修平> > ;; どうやって実現するかは?ですが..。

修平> こんなものでいいんでしょうか?

修平> ;; (product-find-by-name "APEL") =>  ["APEL" (9 23) "Nippori"]
修平> ;; (product>= (product-find-by-name "APEL") '(9 22))   => t
修平> ;; (product>= (product-find-by-name "APEL") '(9 22 1)) => t
修平> ;; (product>= (product-find-by-name "APEL") '(9 23))   => t
修平> ;; (product>= (product-find-by-name "APEL") '(9 23 1)) => nil
修平> ;; (product>= (product-find-by-name "APEL") '(9 24))   => nil
(略)

XEmacs の `emacs-version>=' に合わせて、`product-version>=' にするのを
希望します。

;; ふと SEMI と WEMI のことが頭をよぎって、product-type とか
;; product-type-version なんてのもあった方が良いかなと思いましたが、際
;; 限ないからやめといた方が良いかな?


修平> ;; (product-find-by-feature 'poe) => ["APEL" (9 23) "Nippori"]
修平> ;; (product-require 'poe '(9 22)) => t
修平> ;; (product-require 'poe '(9 23)) => t
修平> ;; (product-require 'poe '(9 24)) => nil
修平> (defun product-require (feature version)
修平>   (when (require feature nil t)
修平>     (let ((product (product-find-by-feature feature)))
修平>       (when product
修平>         (product>= product version)))))

修平> ただし, `require' は byte-compiler で特別扱いされているはずなの
修平> で, `require' を `product-require' で代用するのでなく, (require
修平> FEATURE)した後で (product-require FEATURE VERSION) で判定する方
修平> が無難だと思います.

product-feature-p とかの方が良いんじゃないでしょうか?

あと、product-name も check できた方が良いかも知れません。

;; 例えば、APEL の alist か XEmacs 附属の alist かを調べたい時とか?
-- 
┯━…‥・懐かしい未来の記憶をふと思い出しかけた・‥…━━┯━━━┯━
││ ─ │  ─  /    ─   ┼─     ┬                ─   ─┼ ┬┴─
┼┼─┼|〓━─┼ 守岡 知彦 (MORIOKA Tomohiko) <tomo @ etl.go.jp>─ ─┬
┻┻━┻━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━




More information about the APEL-ja mailing list