From: keiju@... (ÀÐÄͷ½¼ù ) Date: 1997-04-12T00:39:17+09:00 Subject: [ruby-list:2781] Re: tk etc. けいじゅ@SHLジャパンです. In [ruby-list :02743 ] the message: "[ruby-list:2743] Re: tk etc. ", on Apr/10 11:41(+0200) matz@caelum.co.jp (Yukihiro Matsumoto) writes: >そうですね.まあ,あの手のバグはGC絡みというのは過去の経験か >ら分かっていましたから,比較的しぼりやすかったですね.で,結 >局コンパイル中にGCが起きたらとりあえず全てのノードをマークす >るというかなり安全側に倒した方法で解決しました. ということはコンパイル中は, ノードに関してはゴミであってもGCされないっ てこと? >|あ, でも, 良く考えたら, 構文木を参照するポインタがスタック中か静的変数 >|かにあるはずだからGCされないような(?_? >rubyのGCは大域変数やヒープ中の領域に関しては明示的に教えてや >らないとマークしませんから. ん? そうなんだ... 結構めんどくさいっかたのね. といっても, conservative gcの場合は領域の指定はしょうがないのかな... >構文木はボトムアップに構築されるので,コンパイル中はパーザス >タックからしか参照されていないノードがあります.yaccの場合は >パーザスタックがヒープ上の領域にとられるので,マークされなかっ >たようです. パーザスタックがマークの対象になれば, そこから参照されているものもマー クの対象になるかと思うんだけど, そういうものではないのかしら? __ .....................................石塚 圭樹@SHLジャパン(株)... ------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----