From: matz@... (Yukihiro Matsumoto) Date: 2000-06-21T11:38:49+09:00 Subject: [ruby-dev:10099] Re: [PATCH] module === string.extend(module).dup まつもと ゆきひろです In message "[ruby-dev:10097] Re: [PATCH] module === string.extend(module).dup" on 00/06/21, nobu.nakada@nifty.ne.jp writes: |> しかも、 |> これはcloneと違って、複製後に元のオブジェクトに特異メソッド |> を追加すると自動的にdupされたオブジェクトにも追加されるとい |> うオマケ付き。 | | これには気づきませんでしたが、T_ICLASS を共有してるせいですか。 T_ICLASSじゃなくて FL_SINGLETON なクラスを共有してるせいです。 これは各オブジェクトに1対1で対応すべきなのでした。 | こういうのだと、frozen なオブジェクトじゃダメでした。 |Kernel#included_modules とか extended_modules とかいうのがあれば、うま |く行きそうなんですが。 要するにfrozenなオブジェクトに対しても(変更しさえしなければ) 特異クラスを定義(というか参照)できれば問題なしのようですね。 なんとかしましょう。 まつもと ゆきひろ /:|}