APEL version

Keiichi Suzuki keiichi @ nanap.org
1999年 11月 12日 (金) 14:12:35 JST


>>>>> apel-ja の No. 00105
>>>>> Message-Id: <uogd0gwhx.fsf @ grass.meadow.scphys.kyoto-u.ac.jp> で、
>>>>> "himi" == Miyashita Hisashi(宮下 尚:HIMI) <himi @ bird.scphys.kyoto-u.ac.jp>さま曰く...

himi> Keiichi Suzuki <keiichi @ nanap.org> writes:
>> (product-define "Meadow" "emacs" '(1 11 1) "TSUYU")
>> (product-provide 'Meadow "Meadow")
>> (product-define "MULE" "Meadow" '(4 1) "AOI")
>> (product-provide 'mule "MULE")
>> (product-define "Emacs" "Meadow" '(20 4) system-configuration)
>> (product-provide 'emacs "Emacs")
>> 
>> (product-string "emacs" t)
>> "Meadow/1.11.1 (TSUYU) Emacs/20.4 (i386-*-nt4.0.1381) MULE/4.1 (AOI)"

himi> この、1.11.1ってのは、なんだかなぁって思うんですが、これは、
himi> どういう風に決められているんでしょう? (Meadow-version)から
himi> 自動決定はされないんですか?

これ、ただのサンプルなのであまり気にしないでください。 ^^;;;

自動決定のロジックは、まだ作っていません。

;; だれか作っていただけないでしょうか? 私には各種の emacsen およびその歴
;; 史に関する知識が不足しています。 ;_;

ところで... 1.11b1 をどうやって表現したら良いでしょうか?

;; このこともあって、自動決定のコードが書けないという話も。 ^^;;;

(product-version>= 1.11b1 1.11) => nil

になるべきだと思うのですが、 API 的には同じはずだということで、 1.11b1 =
1.11 としても良いものでしょうか?

そうであれば (product-define "Meadow" "emacs" '(1 11) "TSUYU") というも
のを生成することはできると思います。

で、 (product-string "Meadow") の結果は "Meadow/1.11b1" にしなければなら
ないということになると、 product-version の他に product-version-string 
を持たなければならないことになりますね。 ;_;

;; product-define() の API は今のままにして、 slot を一つ増やしてそこに
;; 文字列が入っていたら、それを使う、入っていなかったら product-version
;; を元に生成し、そこにいれておくようにすれば良いかな。

ところで、 Meadow のバージョン番号は...

(let ((version (Meadow-version)))
  (if (string-match "\\(\\([0-9.]+\\)[^ ]+\\)" version)
      (let ((verstr (match-string 1 version)) ; 文字列のまま使う
            (verno (match-string 2 version))) ; 数値の list に変換する
        (message "[%s] [%s]" verstr verno))))

のようにして切り出せば今後も(遠い将来はわからないでしょうが) OK でしょう
か?

-- 
鈴木圭一 / 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