From: SASADA Koichi Date: 2012-07-30T17:43:14+09:00 Subject: [ruby-dev:46013] Re: [ruby-trunk - Feature #6812][Open] Refactor gc.c パッチを細かく見てないんですが,確認させて下さい. (2012/07/30 17:07), authorNari (Narihiro Nakamura) wrote: > gc.cがごちゃごちゃしてきたので見通しがよくなるようにvm_xx.cみたいにファ > イルを分割しました。この修正ではCやRubyレベルのAPIの変更はありません。 > # 2ヶ月前の開発会議で議論していた件です。 > # http://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20120601 > > 変更内容は以下のURLで閲覧できます。 > https://github.com/authorNari/ruby/commit/11e4bffd9e3 > > パッチは以下のとおりです。 > https://github.com/authorNari/ruby/commit/11e4bffd9e3.patch > > 改善案や意見等ありましたら教えていただけると嬉しいです。  方針は賛成です.  確認したいんですが,コードを移動しただけでしょうか.それとも,gc.c 内 のコードも結構変わってる漢字でしょうか. > = パッチの簡単な解説 > > 以下のような階層で分割しています。 > > + gc.c > +-- gc_alloc.[ch] > +-- gc_ms.[ch] > +-- gc_ms_heap.c > +-- gc_ms_profiler.c > > それぞれのファイルの簡単な説明は以下のとおりです。 > * gc_alloc.h > メモリアロケータで実装すべき関数が定義される > (ruby_xmallocなど) > > * gc_ms.h > GCに実装すべき関数などが定義される > (gc_markなど)  *.h って要りますか? インターフェースを切るとき,こっちのほうがよかっ たりするんだろうか. > * gc_ms_heap.c > GC対象のヒープに依存するコードを記述  heap.h は不要でしょうか.  あと,heap の構造は ms(mark & sweep)に依存するでしょうか.たしかに copying とかするならバッサリ変わる気がする.が,変わる可能性はあるんだろ うか.  実は,その辺を mmap で一度に沢山とっておいて云々,ってのを以前放り出し ていたのに再チャレンジしたいと思っているんですが,その場合,ms_heap とい う名前なのかなと考えたのでした. -- // SASADA Koichi at atdot dot net