RHG/第2章

Hacking Guideとしては実質最初の章なので、 特に難しいところはないです。

VALUE型の意味

「VALUE obj;」……みたいに、Rubyのオブジェクトなら とにかく何でもVALUE型として宣言しておいて、 使うときにキャストする。

RXxxx型

メジャーなものは覚えておく(というか、何度も出てくるので 自然に覚える)。

RBasic型、RObject型、そのほかのRXxxx型の関係

basic.flagsの意味

構造体の型を覚えておかなければいけないので必要

VALUE埋め込みオブジェクト

6種類ある。

0bxxxxxxxx xxxxxxxx xxxxxxxx xxxxxxx1 数値
0bxxxxxxxx xxxxxxxx xxxxxxxx xxxx1110 シンボル
0b00000000 00000000 00000000 00000000 false
0b00000000 00000000 00000000 00000010 true
0b00000000 00000000 00000000 00000100 nil
0b00000000 00000000 00000000 00000110 Qundef

シンボル

昔は数値だったけど、今は別になっている (理由は? なんか区別したい、って話があった記憶はあるんですが)

メソッドのありか

RClass構造体の m_tbl (st_table型) にある。

メソッドの探索

Rubyでのメソッド探索方法を思い出しながら、クラスのチェインをたどる。

インスタンス変数

基本は各オブジェクトの構造体のiv_tblだが、例外的に グローバルなgeneric_iv_tblに記憶させるものもある。 理由は、構造体の大きさを各オブジェクトでそろえるため。

インスタンス変数へのアクセスは第3章を読んだ後で読み返したほうが いいかも。

各オブジェクト構造体

ざっと眺めておく。RHGの続きを読む上ではあんまり重要ではないかも。 自分で拡張ライブラリを書いたりするならどれも重要。



The RWiki