[Anthy-dev 1086] Re: uim-svn1292 の時点での不具合につきまして

Back to archive index

YamaKen yamak****@bp*****
2004年 9月 27日 (月) 21:38:46 JST


ヤマケンです。

At Mon, 27 Sep 2004 05:03:33 -0700,
komat****@taiya***** wrote:
> At Sun, 26 Sep 2004 13:22:28 +0900,
> Kazuki Ohta wrote:
> > > > > 2) uim-primeで文字を確定させると、同じ文字が再度表示される
> > > > > あきのやま と入力してスペース→Enter
> > > > > このように表示されます:
> > > > > http://www.geocities.co.jp/SiliconValley-Cupertino/5207/snapshot/uim-pr
> > > > >ime-svn1292.png (prime-0.8.4)
> > > >
> > > >  r1295で修正しました。
> > >
> > > 最近define-recordを導入した時に書き換えをミスったようです。すい
> > > ません。
> > >
> > > これで不具合は解消したでしょうか? >kzkさん
> > 解消されました。修正どうもですm(_ _)m
> 
> 最近メールを追い切れていないので、見落としてしまっているのかもしれませんが、
> define-record とはどういったものなのでしょうか。また uim-prime としては
> どのような変更が加えられたのでしょうか?

define-recordは各IMのcontextで使われているようなaccessor付きの
listを安全かつ簡単に定義するためのものです。r1228でprimeを含む全
てのIMのcontext定義をこれで置き換えました。

次のような式を評価すると、

(define-record 'foo
  '((member1 ())
    (member2 "2")
    (member3 3)))

以下のprocedureが定義されます。

foo-new
foo-member1
foo-set-member1!
foo-member2
foo-set-member2!
foo-member3
foo-set-member3!

これを導入する前のuimではanthy-context-newなどで各メンバのデフォ
ルト値を設定するためにindexを数えたりする必要がありましたが、こ
れは面倒なだけでなくバグの温床なので(実際anthy-contextでは要素数
が食い違っていました)define-recordでは各メンバ名のすぐ横に書ける
ようにしました。

以下のように動作します。

uim> (foo-new)
(() "2" 3)
uim> (foo-new 'one 'two 'three)
(one two three)
uim> (foo-new 1)
(1 "2" 3)
uim> (foo-member2 (foo-new))
"2"

まだドキュメント化が不十分ですが、とりあえずdefine-recordの動作
を知りたい場合はtest/test-util.scmを見てください。

また、define-record化の他にr1304で'context object integration'と
いう作業を全IMに対して行っています。こちらも単純化のための作業で
すが、Scheme APIの変更を含むので影響が大きくなっています。
API/ABIの変更はIMやbridgeの開発者に対する影響が大きいので
doc/COMPATIBILITYというドキュメントを作ってその変更を記録する事
にしました。context object integrationについてはそちらに記述した
ので参照してください。define-recordについても記録しようと思いま
す。

-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
Back to archive index