ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c
@ 2012-07-30  8:07 authorNari (Narihiro Nakamura)
  2012-07-30  8:43 ` [ruby-dev:46013] " SASADA Koichi
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-07-30  8:07 UTC (permalink / raw
  To: ruby developers list


Issue #6812 has been reported by authorNari (Narihiro Nakamura).

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

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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46013] Re: [ruby-trunk - Feature #6812][Open] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
@ 2012-07-30  8:43 ` SASADA Koichi
  2012-07-30 13:51 ` [ruby-dev:46014] " Urabe Shyouhei
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: SASADA Koichi @ 2012-07-30  8:43 UTC (permalink / raw
  To: ruby developers list

パッチを細かく見てないんですが,確認させて下さい.

(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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46014] Re: [ruby-trunk - Feature #6812][Open] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
  2012-07-30  8:43 ` [ruby-dev:46013] " SASADA Koichi
@ 2012-07-30 13:51 ` Urabe Shyouhei
  2012-07-30 15:51   ` [ruby-dev:46015] " KOSAKI Motohiro
  2012-07-30 23:21 ` [ruby-dev:46016] [ruby-trunk - Feature #6812] " authorNari (Narihiro Nakamura)
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Urabe Shyouhei @ 2012-07-30 13:51 UTC (permalink / raw
  To: ruby developers list

On 2012年07月30日 17:07, authorNari (Narihiro Nakamura) wrote:
>   +-- gc_ms.[ch]

すいませんがさすがにmsでmark&sweepの意味とは普通の人は分かりません、別の名前にしてください。
俺もわかんなかったので間違いないです。

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46015] Re: [ruby-trunk - Feature #6812][Open] Refactor gc.c
  2012-07-30 13:51 ` [ruby-dev:46014] " Urabe Shyouhei
@ 2012-07-30 15:51   ` KOSAKI Motohiro
  0 siblings, 0 replies; 13+ messages in thread
From: KOSAKI Motohiro @ 2012-07-30 15:51 UTC (permalink / raw
  To: ruby developers list; +Cc: kosaki.motohiro

(7/30/12 9:51 AM), Urabe Shyouhei wrote:
> On 2012年07月30日 17:07, authorNari (Narihiro Nakamura) wrote:
>>   +-- gc_ms.[ch]
> 
> すいませんがさすがにmsでmark&sweepの意味とは普通の人は分かりません、別の名前にしてください。
> 俺もわかんなかったので間違いないです。

一般論としてはアルゴリズムはあとから変更されうるのでファイル名としてはもう1つな気がしますねえ

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46016] [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
  2012-07-30  8:43 ` [ruby-dev:46013] " SASADA Koichi
  2012-07-30 13:51 ` [ruby-dev:46014] " Urabe Shyouhei
@ 2012-07-30 23:21 ` authorNari (Narihiro Nakamura)
  2012-07-30 23:23 ` [ruby-dev:46017] " authorNari (Narihiro Nakamura)
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-07-30 23:21 UTC (permalink / raw
  To: ruby developers list


Issue #6812 has been updated by authorNari (Narihiro Nakamura).


ko1 (Koichi Sasada) wrote:
> パッチを細かく見てないんですが,確認させて下さい.
>  
>  (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 とかするならバッサリ変わる気がする.が,変わる可能性はあるんだろ
>  うか.
>  

現在はheapの構造に依存しています。完全に依存なくすとしたら結構大変ですね。
MostlyCopyingの可能性はありますが、当分は入らないと思いますので無視して
いいかもしれません。

>   実は,その辺を mmap で一度に沢山とっておいて云々,ってのを以前放り出し
>  ていたのに再チャレンジしたいと思っているんですが,その場合,ms_heap とい
>  う名前なのかなと考えたのでした.
>  

なるほど。なるべくGC周りをいじりやすくしたいので、ヒープ構造に依存しないように作り
直してみます。

>  -- 
>  // SASADA Koichi at atdot dot net


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

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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46017] [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
                   ` (2 preceding siblings ...)
  2012-07-30 23:21 ` [ruby-dev:46016] [ruby-trunk - Feature #6812] " authorNari (Narihiro Nakamura)
@ 2012-07-30 23:23 ` authorNari (Narihiro Nakamura)
  2012-07-30 23:57   ` [ruby-dev:46018] " SASADA Koichi
  2012-07-31  1:48 ` [ruby-dev:46019] " authorNari (Narihiro Nakamura)
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-07-30 23:23 UTC (permalink / raw
  To: ruby developers list


Issue #6812 has been updated by authorNari (Narihiro Nakamura).


kosaki (Motohiro KOSAKI) wrote:
> (7/30/12 9:51 AM), Urabe Shyouhei wrote:
>  > On 2012年07月30日 17:07, authorNari (Narihiro Nakamura) wrote:
>  >>   +-- gc_ms.[ch]
>  > 
>  > すいませんがさすがにmsでmark&sweepの意味とは普通の人は分かりません、別の名前にしてください。
>  > 俺もわかんなかったので間違いないです。
>  
>  一般論としてはアルゴリズムはあとから変更されうるのでファイル名としてはもう1つな気がしますねえ

上記、ありがとうございます。アルゴリズム名以外の名前…。gc_coreとかですかね。
----------------------------------------
Feature #6812: Refactor gc.c
https://bugs.ruby-lang.org/issues/6812#change-28557

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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46018] Re: [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-30 23:23 ` [ruby-dev:46017] " authorNari (Narihiro Nakamura)
@ 2012-07-30 23:57   ` SASADA Koichi
  0 siblings, 0 replies; 13+ messages in thread
From: SASADA Koichi @ 2012-07-30 23:57 UTC (permalink / raw
  To: ruby developers list

(2012/07/31 8:23), authorNari (Narihiro Nakamura) wrote:
> 上記、ありがとうございます。アルゴリズム名以外の名前…。gc_coreとかですかね。

core はやめたほうがいいです(と,vm_core.h という名前を付けた人が反省し
ています).

個人的には,gc.c -> objspace.c にして,objspace_gc.c,
objspace_gc_(mark|sweep).c みたいにするのが綺麗な気がするんですが,変わ
りすぎてるのでよろしくなさそうです.mark と sweep を別にするのも変だしな.

というわけで,対案が無くて -1 で大変心苦しいですが,

個人的には ms で mark & sweep 以外無いだろう,と思ったので,あまり違和感
が無かったのですが....

-- 
// SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46019] [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
                   ` (3 preceding siblings ...)
  2012-07-30 23:23 ` [ruby-dev:46017] " authorNari (Narihiro Nakamura)
@ 2012-07-31  1:48 ` authorNari (Narihiro Nakamura)
  2012-07-31  4:05   ` [ruby-dev:46020] " Urabe Shyouhei
  2012-07-31  8:26 ` [ruby-dev:46021] " authorNari (Narihiro Nakamura)
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-07-31  1:48 UTC (permalink / raw
  To: ruby developers list


Issue #6812 has been updated by authorNari (Narihiro Nakamura).


ko1 (Koichi Sasada) wrote:
> (2012/07/31 8:23), authorNari (Narihiro Nakamura) wrote:
>  > 上記、ありがとうございます。アルゴリズム名以外の名前…。gc_coreとかですかね。
>  
>  core はやめたほうがいいです(と,vm_core.h という名前を付けた人が反省し
>  ています).
>  
>  個人的には,gc.c -> objspace.c にして,objspace_gc.c,
>  objspace_gc_(mark|sweep).c みたいにするのが綺麗な気がするんですが,変わ
>  りすぎてるのでよろしくなさそうです.mark と sweep を別にするのも変だしな.
>  
>  というわけで,対案が無くて -1 で大変心苦しいですが,
>  
>  個人的には ms で mark & sweep 以外無いだろう,と思ったので,あまり違和感
>  が無かったのですが....
>  

なるほど…。

個人的にはgc.c自体は変える気はなく、gc.cにincludeされるファイルの名前なのでアルゴリズム名もありかと思っています。
アルゴリズムが変わったらファイル名も変えればいいかなと。
ですので、gc_mark_sweep.cあたりでどうでしょうか。

# ちなみにHotspotVM界隈ですとCMSとか平気で名付けるようです。

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

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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46020] Re: [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-31  1:48 ` [ruby-dev:46019] " authorNari (Narihiro Nakamura)
@ 2012-07-31  4:05   ` Urabe Shyouhei
  0 siblings, 0 replies; 13+ messages in thread
From: Urabe Shyouhei @ 2012-07-31  4:05 UTC (permalink / raw
  To: ruby developers list

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じゃ
ないんかい」的なツッコミは当然入るのではないでしょうか。

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46021] [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
                   ` (4 preceding siblings ...)
  2012-07-31  1:48 ` [ruby-dev:46019] " authorNari (Narihiro Nakamura)
@ 2012-07-31  8:26 ` authorNari (Narihiro Nakamura)
  2012-07-31  8:51 ` [ruby-dev:46022] " shyouhei (Shyouhei Urabe)
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-07-31  8:26 UTC (permalink / raw
  To: ruby developers list


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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46022] [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
                   ` (5 preceding siblings ...)
  2012-07-31  8:26 ` [ruby-dev:46021] " authorNari (Narihiro Nakamura)
@ 2012-07-31  8:51 ` shyouhei (Shyouhei Urabe)
  2012-07-31  9:05 ` [ruby-dev:46023] " authorNari (Narihiro Nakamura)
  2012-09-15  3:12 ` [ruby-dev:46139] [ruby-trunk - Feature #6812][Closed] " authorNari (Narihiro Nakamura)
  8 siblings, 0 replies; 13+ messages in thread
From: shyouhei (Shyouhei Urabe) @ 2012-07-31  8:51 UTC (permalink / raw
  To: ruby developers list


Issue #6812 has been updated by shyouhei (Shyouhei Urabe).


authorNari (Narihiro Nakamura) wrote:
> gc.cがごちゃごちゃしてきたので見通しがよくなるように

とありますが、真の狙いは違うのではないか、というふうに思います。見通しがよくなるように、でよければ、mark&sweepとか言わなくてもいいはずですよね。というか、言うまでもない。

本当にやりたいことを整理すると、適切な名前が見えてくるのかもしれないと思います(保証するわけではありませんが)。
----------------------------------------
Feature #6812: Refactor gc.c
https://bugs.ruby-lang.org/issues/6812#change-28571

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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46023] [ruby-trunk - Feature #6812] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
                   ` (6 preceding siblings ...)
  2012-07-31  8:51 ` [ruby-dev:46022] " shyouhei (Shyouhei Urabe)
@ 2012-07-31  9:05 ` authorNari (Narihiro Nakamura)
  2012-09-15  3:12 ` [ruby-dev:46139] [ruby-trunk - Feature #6812][Closed] " authorNari (Narihiro Nakamura)
  8 siblings, 0 replies; 13+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-07-31  9:05 UTC (permalink / raw
  To: ruby developers list


Issue #6812 has been updated by authorNari (Narihiro Nakamura).


shyouhei (Shyouhei Urabe) wrote:
> authorNari (Narihiro Nakamura) wrote:
> > gc.cがごちゃごちゃしてきたので見通しがよくなるように
> 
> とありますが、真の狙いは違うのではないか、というふうに思います。見通しがよくなるように、でよければ、mark&sweepとか言わなくてもいいはずですよね。というか、言うまでもない。
> 
> 本当にやりたいことを整理すると、適切な名前が見えてくるのかもしれないと思います(保証するわけではありませんが)。

アドバイスありがとうございます。そうですね。目的についてもう少し整理してから出なおしてきます。
----------------------------------------
Feature #6812: Refactor gc.c
https://bugs.ruby-lang.org/issues/6812#change-28572

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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ruby-dev:46139] [ruby-trunk - Feature #6812][Closed] Refactor gc.c
  2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
                   ` (7 preceding siblings ...)
  2012-07-31  9:05 ` [ruby-dev:46023] " authorNari (Narihiro Nakamura)
@ 2012-09-15  3:12 ` authorNari (Narihiro Nakamura)
  8 siblings, 0 replies; 13+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-09-15  3:12 UTC (permalink / raw
  To: ruby developers list


Issue #6812 has been updated by authorNari (Narihiro Nakamura).

Status changed from Open to Closed

だいぶん前になりますが、gc.cを少し整理してみたのでこのチケットは閉じておきます。
----------------------------------------
Feature #6812: Refactor gc.c
https://bugs.ruby-lang.org/issues/6812#change-29317

Author: authorNari (Narihiro Nakamura)
Status: Closed
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/

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-09-15  3:08 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-30  8:07 [ruby-dev:46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c authorNari (Narihiro Nakamura)
2012-07-30  8:43 ` [ruby-dev:46013] " SASADA Koichi
2012-07-30 13:51 ` [ruby-dev:46014] " Urabe Shyouhei
2012-07-30 15:51   ` [ruby-dev:46015] " KOSAKI Motohiro
2012-07-30 23:21 ` [ruby-dev:46016] [ruby-trunk - Feature #6812] " authorNari (Narihiro Nakamura)
2012-07-30 23:23 ` [ruby-dev:46017] " authorNari (Narihiro Nakamura)
2012-07-30 23:57   ` [ruby-dev:46018] " SASADA Koichi
2012-07-31  1:48 ` [ruby-dev:46019] " authorNari (Narihiro Nakamura)
2012-07-31  4:05   ` [ruby-dev:46020] " Urabe Shyouhei
2012-07-31  8:26 ` [ruby-dev:46021] " authorNari (Narihiro Nakamura)
2012-07-31  8:51 ` [ruby-dev:46022] " shyouhei (Shyouhei Urabe)
2012-07-31  9:05 ` [ruby-dev:46023] " authorNari (Narihiro Nakamura)
2012-09-15  3:12 ` [ruby-dev:46139] [ruby-trunk - Feature #6812][Closed] " authorNari (Narihiro Nakamura)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).