[Anthy-dev 2756] Re: コードの抽象化 (was: to 太田さん )

アーカイブの一覧に戻る

Kazuki Ohta mover****@hct*****
2005年 12月 21日 (水) 13:29:30 JST


太田です。

r2678にて全アクセサの再実装を終えました。SCM_SAL_C_POINTER_VALUE
等から見れば下層の構成は無視出来ていますが、SCM_SET_CAR_VAL等が
結構複雑化してしまいました。

現在の実装では、予めothers->carにstoreする値のalignmentを設定しておき
ます(SCM_OTHERS_CAR_VAL_ALIGNMENT_*)。alignmentが0x1の時(つまり
SCM_ALIGNMENT_NOALIGN)の場合は、SCM_OTHERS_CAR_VAL等で特殊
な処理を行います。その処理というのは、valのLSBをcdrのvalue領域のLSBに
保存するという処理です。cdrにアクセスする時はフラグをみて、そのLSBをスキップ
するので、使う側からはこういった複雑な処理を気にせずに使用する事ができます。

continuation opaqueのalignmentが気になるなといった場合でも、NOALIGNに
設定すれば、自動的にCDRにLSBを保存してくれます。

とまぁこんな感じです。


> > Pointerについては、alignedなポインタが入ってくるとは限らないので、LSB
> > だけを cdr の一部に退避させる必要があります。(carのLSBはGC bitに使
> > われています)
>
> これも同様。「LSBだけをcarに…」ではなく、「carのvalue幅から溢れ
> た分をcdrのvalueに格納」とすれば下層の構成を無視できます。


-------------------------------------------------
Kazuki Ohta : mover****@hct*****
-------------------------------------------------



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る