product.el (Re: DEL and SPC in RMAIL-summary buffer)

Keiichi Suzuki keiichi @ nanap.org
2000年 12月 28日 (木) 12:21:01 JST


>>>>> apel-ja の No. 00509
>>>>> Message-Id: <htxr92ugkpb.fsf_-_ @ urania.kanji.zinbun.kyoto-u.ac.jp> で、
>>>>> "守岡" == tomo @ kanji.zinbun.kyoto-u.ac.jp (守岡 知彦 / MORIOKA Tomohiko)さま曰く...

守岡> この方向性で鈴木圭一さんが code を書きはじめてくださったそうなんですが、
守岡> 互換性の問題がありそうだとのことです。

現在考えている範囲で、変更になる点をあげておきます。

以下、 `product object' という表記は新形式(`product' property を
持つ、 symbol)の product object を表します。

1. product-define - 変更

   この関数が返す値が、 vector から、 `product object' になります。

   NAME は、シンボルを基本としますが、互換性のために、 string も
   受け付けるようにします。これは FAMILY も同様です。

   NAME がシンボルとなりますので、 vector 内には保持しません。そ
   のため、 vector 長は、現在の 8 から 7 に変更します。

   また、第5引数として、 DOC-STRING を追加します。この文字列は、
   プロパティ `product-documentation' として、シンボルに付加しま
   す。

2. 引数 - 共通変更

   各関数の引数として、旧形式の product object (vector) であった
   ものは、すべて(新形式の) `product object' になります。
   `product object' 以外のものを渡された場合には、 
   `wrong-type-argument' error を発生するようになります。

3. productp - 新設

   オブジェクトが `product object' で有る場合には、 t 、そうでな
   ければ nil を返します。

4. product-set-name - 廃止

5. product-find-by-name, product-find-by-feature, product-find - 変更

   返り値が vector から `product object' になります。

6. product-provide - 変更

   現在、 feature の symbol に vector を値として持つ `product'
   property を付加していますが、 (`product object' symbol
   version) という形式の、 list を値として持つ、
   `product-of-feature' という property を付加するようになります。

   この `symbol' 及び `version' はそれぞれコンパイル時の
   `prodect object' の symbol および version になります。

守岡> (b) API となる関数の明確化

私としては、以下の関数群を API として定義し、これらから外れてお
り、なおかつ内部でも使用していない関数は、削除することを提案しま
す。

product-ignore-checkers
  Variable: (not documented)

product-define
  Function: Define a product as a set of NAME, FAMILY, VERSION, and CODE-NAME.
product-provide
  Macro: Declare a feature as a part of product.
  Plist: lisp-indent-function

product-add-checkers
  Function: Add checker function(s) to a product.
product-remove-checkers
  Function: Remove checker function(s) from a product.
product-run-checkers
  Function: Run checker functions of product.

product-name
  Function: Return the name of PRODUCT, a string.
product-checkers
  Function: Return the checkers of PRODUCT, a list of functions.
product-code-name
  Function: Return the code-name of PRODUCT, a string.
product-family
  Function: Return the family name of PRODUCT, a string.
product-family-products
  Function: Return the family products of PRODUCT, a list of strings.
product-features
  Function: Return the features of PRODUCT, a list of feature.
product-version
  Function: Return the version of PRODUCT, a list of numbers.
product-version-string
  Function: Return the version string of PRODUCT, a string.

product-find
  Function: Find product information.
product-find-by-feature
  Function: Get a product structure of a feature's product.
product-find-by-name
  Function: Find product by name and return a product structure.
product-for-each
  Function: Apply a function to a product and the product's family with args.

product-list-products
  Function: List all products information.

product-set-code-name
  Function: Set code-name of PRODUCT to CODE-NAME.
product-set-version-string
  Function: Set version string of PRODUCT to VERSION-STRING.

product-string
  Function: Return information of product as a string of "NAME/VERSION".
product-string-1
  Function: Return information of product as a string of "NAME/VERSION".
product-string-verbose
  Function: Return information of product as a string of "NAME/VERSION (CODE-NAME)".
product-version-as-string
  Function: Return version number of product as a string.
product-version-compare
  Function: Compare two versions.
product-version>=
  Function: Compare product version with required version.

product-parse-version-string
  Function: Parse version string ".*v1.v2... (CODE-NAME)".

以下のものは API からはずしたいと思います。

product-set-checkers
  Function: Set ckecker functions of PRODUCT to CHECKERS.
product-set-family-products
  Function: Set family products of PRODUCT to PRODUCTS.
product-set-features
  Function: Set features of PRODUCT to FEATURES.

さらに、以下のものは削除したいと思います。

product-set-name
  Function: Set name of PRODUCT to NAME.
product-set-version
  Function: Set version of PRODUCT to VERSION.
product-add-feature
  Function: Add a feature to the features list of a product.
product-add-to-family
  Function: Add a product to a family.
product-obarray
  Variable: (not documented)
product-remove-feature
  Function: Remove a feature from the features list of a product.
product-remove-from-family
  Function: Remove a product from a family.
product-set-family
  Function: Set family name of PRODUCT to FAMILY.

>>>>> apel-ja の No. 00511
>>>>> Message-Id: <200012280152.KAA11892 @ etlken.etl.go.jp> で、
>>>>> "Kenichi" == Kenichi Handa <handa @ etl.go.jp>さま曰く...

Kenichi> internal なものは全部
Kenichi>   "For internal use only.
Kenichi> ...."
Kenichi> という形にするのも良いかもしれません。
Kenichi> 	M-x apropos RET ^product- RET
Kenichi> で何が internal で何が API かすぐに分かるので。

賛成します。

;; もうすぐ大掃除、その後、納会が始まりますので、今日は反応でき
;; ないかもしれません。 ^^;;;
-- 
鈴木圭一 / 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