Objective-CのGC「autozone」がオープンソース化された

bbum's weblog-o-mat » Blog Archive » AutoZone: The Objective-C Garbage Collector
売り文句は

It is actually a fairly generic scanning, conservative, generational, multi-threaded, language agnostic, collector. 

らしいが,はてさて.コードを眺める事にしよう.
Source Browser
README.html

generic scanning

BoehmGCと同じWriteBarrierの張り方みたい.
ページ保護によってold世代からnew世代の参照を見張っているようだ.
MarkSweepは使っておらず,Treadmillの変形の様な形でやっている.
それと,mallocやfreeに相当するものを自作しており,メモリ割り当てのアルゴリズムはbest fitを使用しているよう.
これを観るとglibc mallocを思い出したりするのは私だけ?

conservative

ルート探索はまぁ泥臭い感じでやっていた.(想像通り)
とはいえ環境はMacに限られる訳で,それなりにシンプルに実装されている.

multi-threded

コードを見た限りだと,マルチスレッド環境でもちゃんとゴミ回収できるよ!って事みたい.
concurrentだとかparallelでは無いような感じがした.

所感

何というか目新しい事はなかった.BoehmGCのMacに特価した版作ってみたという感じ.
いやBoehmGCでよくない?という感じも受けたが,人の事は言えないしねぇとか何とか.
 
あと,こうC++って読みにくすぎる.
この値がどこで入ったかとか非常に追いづらいし,このメソッドの実体なんなんだよって感じに陥りやすい.
慣れたらそんな事無くなるんだろうか.
 

なんと!

おぉ,MacRubyにはすでに入っていたか.
http://www.macruby.org/trac/browser/MacRuby/trunk/gc.c