Ruby2.0でC拡張ライブラリ用のオブジェクト形式としてTypedDataが追加されている。俺はずっとRuby1.8&1.9用に作ってたからつい最近まで知らなかったのだが(新しいREADME.EXT.jaにも書いてないし)、RGenGCに対応する方法を追っかけてたらなんか出てきたという感じだ。今日ちょっといじってみたので把握したことをメモっておく。 ■RData 昔はRData構造体を使ってて、バージョンによってちょっと違ったりするが、だいたいこんな感じの構造になっている。 struct RData { struct RBasic basic; void (*dmark)(void*); void (*dfree)(void*); void *data; }; RBasicはフラグとクラスが入ったオブジェクトの基本構造だ。dmark、dfreeはCの関数ポインタを格納する。それぞれGCの