[#45910] [ruby-trunk - Bug #6694][Open] Thread.new without block. — "ko1 (Koichi Sasada)" <redmine@...>

24 messages 2012/07/04

[#45913] [ruby-trunk - Bug #6698][Open] MacOSXではDir.globが返すファイル名の内容はUTF8-MACですがencodingがUTF-8になっている — "imkira (Mario Freitas)" <imkira@...>

10 messages 2012/07/04

[#45933] [ruby-trunk - Bug #6716][Open] FileUtils.mv でリンク先がないシンボリックリンクファイルを指定すると ENOENT エラーになる — "tommy (Masahiro Tomita)" <tommy@...>

8 messages 2012/07/10

[#45976] [ruby-trunk - Bug #6756][Open] FileUtils.rm_rf がアクセス権のない空ディレクトリを削除しない — "fumiyas (Fumiyasu SATOH)" <fumiyas@...>

9 messages 2012/07/20

[#46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c — "authorNari (Narihiro Nakamura)" <authorNari@...>

13 messages 2012/07/30

[ruby-dev:46021] [ruby-trunk - Feature #6812] Refactor gc.c

From: "authorNari (Narihiro Nakamura)" <authorNari@...>
Date: 2012-07-31 08:26:56 UTC
List: ruby-dev #46021
Issue #6812 has been updated by authorNari (Narihiro Nakamura).


shyouhei (Shyouhei Urabe) wrote:
> On 2012年07月31日 10:48, authorNari (Narihiro Nakamura) wrote:
>  >>  個人的には ms で mark & sweep 以外無いだろう,と思ったので,あまり違和感
>  >>  が無かったのですが....
>  
>  いくらなんでも2文字じゃあちょっと
>  
>  
>  > なるほど…。
>  > 
>  > 個人的にはgc.c自体は変える気はなく、gc.cにincludeされるファイルの名前なのでアルゴリズム名もありかと思っています。
>  > アルゴリズムが変わったらファイル名も変えればいいかなと。
>  > ですので、gc_mark_sweep.cあたりでどうでしょうか。
>  > 
>  > # ちなみにHotspotVM界隈ですとCMSとか平気で名付けるようです。
>  
>  たとえば今後RubyにもG1GCが実装されてgc_g1gc.cができたら「G1GCはmark&sweepじゃ
>  ないんかい」的なツッコミは当然入るのではないでしょうか。

上記の発言から読み取ると卜部さんがご指摘されているのは以下の2点と考えて
よろしいでしょうか?

* msは何の略かわからないので避けるべき
* そもそもmark_sweepをファイル名に出すのはよくない
  * mark_sweepの別のgcを実装するときに違うファイル名になると混乱するから

もうすこし抽象的なファイル名にするとしたらやはりgcを使いたいので、
ささださんがおっしゃったように現在のgc.cをなんらかの名前に改名して、
xx_gc.cを新しく作ったほうがスッキリしそうですね。

----------------------------------------
Feature #6812: Refactor gc.c
https://bugs.ruby-lang.org/issues/6812#change-28569

Author: authorNari (Narihiro Nakamura)
Status: Open
Priority: Normal
Assignee: authorNari (Narihiro Nakamura)
Category: core
Target version: 2.0.0


nariです。

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_alloc.[ch]
  +-- gc_ms.[ch]
       +-- gc_ms_heap.c
       +-- gc_ms_profiler.c

それぞれのファイルの簡単な説明は以下のとおりです。

* gc_alloc.h
メモリアロケータで実装すべき関数が定義される
(ruby_xmallocなど)

* gc_ms.h
GCに実装すべき関数などが定義される
(gc_markなど)

* gc_alloc.c
メモリアロケータ周りのコードを記述

* gc_ms.c
GCアルゴリズム周りのコードを記述

* gc_ms_heap.c
GC対象のヒープに依存するコードを記述

* gc_ms_profiler.c
GCのプロファイラ周りのコードを記述する場所



-- 
http://bugs.ruby-lang.org/

In This Thread