< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事
N :次の記事(スレッド移動)
|<:スレッドの先頭
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
(2012/12/20 14:27), shugo (Shugo Maeda) wrote:
> 今のdefine_typeの値の付け方にとくに意味がないのであれば、scopedかどうか(class Foo::Barのような形か)も
> フラグにしてしまった方がすっきりする気がします。
>
> 例えば、以下のようにしてはどうでしょうか。
>
> 下位3ビット -> 定義のタイプ (0 = クラス, 1 = 特異クラス, 2 = モジュール, 3以上は予約)
> 下から4ビット目 -> scopedなら1、そうでなければ0
> 下から5ビット目 -> スーパークラスが指定されていれば1、そうでなければ0
>
> 具体的には以下のような定義を考えています。
>
> typedef enum {
> VM_DEFINE_TYPE_CLASS = 0x00,
> VM_DEFINE_TYPE_SINGLETON_CLASS = 0x01,
> VM_DEFINE_TYPE_MODULE = 0x02,
> /* 0x03..0x06 is reserved */
> VM_DEFINE_TYPE_MASK = 0x07,
> } rb_vm_define_type_t;
>
> #define VM_DEFINE_FLAG_SCOPED 0x08
> #define VM_DEFINE_FLAG_HAS_SUPERCLASS 0x10
>
> その方針で作成したパッチを添付します。
> i686-linux (Ubuntu 12.04)上でmake checkが通ることは確認しています。
どうもありがとうございます.1点だけ,define_type を defineclass_type
にして頂ければ.
コミット頂いてもいいでしょうか.
--
// SASADA Koichi at atdot dot net