データ構造が定義してあるソースコード
Ruby のデータ構造の定義は、いろいろなところに偏在している。
主には次の三カ所。
(なお、他にも本当はいろいろある)
歴史的には、ruby.h がトップレベルにあり、すべて *.h はインストールされていたが、ディレクトリ整理にともなって include/ruby/ruby.h と internal.h に分割された。C-extension が使って良いデータ構造、逆に言えば公開 API であるのを include/ruby/ruby.h に残し、それ以外が internal.h に移動された。
が、include/ruby/ruby.h のデータ構造も時々変るので、C-extension は struct の中身を弄るのは極力やめた方が良い。データ構造に対する操作は、マクロを用いるのが良い。