From: matz@... (Yukihiro Matsumoto) Date: 2002-09-05T17:06:52+09:00 Subject: [ruby-dev:18189] Re: allocation framework まつもと ゆきひろです In message "[ruby-dev:18187] Re: allocation framework" on 02/09/05, 石塚圭樹 writes: |この方式だと, Objectの直下の場合構造的互換性がなくてもサブクラスを作る |ことができますが(Objectそのものが構造に依存するメソッドを持たないため), |さらに, 構造的互換性のないObjectのサブクラスのさらにサブクラスを作成す |るときには, 上位クラスと構造的に(上位)互換でなくてはならないですよね? |というのも, 上位クラスの構造に依存するメソッドを(aliasとか使えば)下位 |クラスから呼び出すことが可能だからです. その通りです。ただ、「サイズは同じでなければならない」かつ 「各メンバの解釈を変えてはいけない」という厳しい制約がつきま すので、「上位互換」が可能な局面は極端に少ないと思います。考 えられるのは2ワードしか使ってないT_FLOATに1ワードぶんなにか 情報を付け加えることくらいでしょうか。 |なので, サブクラスを宣言(rb_define_allocation)するときに自動的に上位ク |ラスとの互換を取ったほうが親切なのでは? と感じました. どうせ, 今までと |互換性がなくなるのだし... 「自動的に上位クラスとの互換性を取る」というのは具体的にどう いう意味でしょう。なにかしたほうが親切だろうとは同意しますが。