[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:6474] Meadow-2.20-dev 状況報告
- X-ml-count: 6499
- Subject: Re: [MD:6474] Meadow-2.20-dev 状況報告
- From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxx>
- Date: Thu, 21 Apr 2005 07:51:18 +0900
- User-agent: Wanderlust/2.15.1 (Almost Unreal) EMIKO/1.14.1 (Choanoflagellata) LIMIT/1.14.8 (Hajinosato) APEL/10.6 Emacs/22.0.50 (i386-msvc-nt5.1.2600) MULE/5.0 (SAKAKI) Meadow/2.20-dev (KIKU)
>>>>> [meadow-develop : No.6498] にて
>>>>> 藤井さんは書きました:
藤井> > o lisp.h の cygwin 用のコードにまだマージしていない部分がある。
藤井> > #ifdef USE_LSB_TAG 〜#endif の間の XTYPE や XINT 等。
藤井> > よく分からないエラーが生じる。
藤井> この部分のマージを行ないました。
藤井> 確かに良く分からないエラーがかなりでてきました。
藤井> 暫定的な対応を含む対応が幾つか必要でしたので報告します。
おおすばらしい。
藤井> そのためポインタの下位 3bit が 0、つまりアドレスが 8 の倍数
藤井> であることが求められます。このため、XTYPE やXINT の定義を
藤井> CVS HEAD の定義に変更すると、アライメントの問題が発生します。
なるほど、アライメントの問題でしたか。非常に厄介な問題です。
藤井> > o Lisp_Float と Lisp_Cons に GC 用のマークビットを仮に追加
藤井> > (lisp.h)。pdump の実装を容易にするため。これらの両オブジェクトの
藤井> > マークビットは下記のようにオブジェクトの外部に移動された。この変
藤井> > 更に、pdumper を対応させるのは面倒(というかよく分からん)だったの
藤井> > で、このように仮に対処。
藤井> 現在はそれぞれのサイズが 16 バイトになるようにして対応しました。(lisp.h)
藤井> # この対応は、上記仮の対処がなくなれば同時に必要なくなります。
なるほど、Lisp_Float と Lisp_Cons に対する私の変更の影響がありま
したか。
なお、Rev. 3668 の alloc.c に Lisp_Float をきちんと Sync up しよ
うとした変更の残骸があります。VC ではちゃんと動いたように思えたの
ですが、Mingw で問題があったので取消しました。
藤井> (4) PDUMP_OFFSET が 8 の倍数でないので、オフセット値の加減算の過程でア
藤井> ドレスが 8 の倍数でなくなります。PDUMP_OFFSET の値を 8 の倍数に変更
藤井> しました。(alloc.c)
藤井> # PDUMP_OFFSET の値に制約はないと判断したので、勝手に変更してますが、
藤井> # ちょっと不安です。
これで問題ないと思います。
藤井> (5) ダンプファイルに書き込む各オブジェクトのサイズが 8 の倍数でないと、
藤井> 結果としてアドレスが 8 の倍数でなくなります。
藤井> 以下のマクロを修正して、サイズが 8 の倍数になるよう補正しました。
藤井> (alloc.c)
これも厄介ですね。よくこの問題に気がついたと思います。
pdumper をだましだまし修正して対応してきましたが、大きく手を入れ
る必要がありそうですね。
--
三好 雅則 http://www.boreas.dti.ne.jp/~miyoshi/