From: SASADA Koichi Date: 2008-06-16T11:07:53+09:00 Subject: [ruby-dev:35116] Class#dup  ささだです.  ruby-core のほうで Class#dup すると思った通りの動作にならない,と いうレポートをもらいました. class A @@a = 'A' def a=(x) @@a = x end def a @@a end end B = A.dup B.new.a = 'B' p A.new.a #=> 'B' #=> 1.8.7 だと 'A'  ほとんど,Class#dup のことを考えていなかったのですが,この問題は真 面目に取り扱う必要があるでしょうか.例えば,Class#dup はサポートしな い,というのも手かと思います.やはりこれは必要な機能だ,と真面目に考 えるなら,がらりと内部構造を変更する必要があります.もし必要なら, 1.9.0-3 までに間に合うように変更したいと思います.  ちなみに,次のような例を試してみたところ,1.8.7 では変なエラーにな りました. class A Const = 'A' def foo p Const end end B = A.dup class B Const = 'B' end p A::Const A.new.foo p B::Const B.new.foo # 1.8.6 以前,1.9.0 'A' # 1.8.7 だとエラー.これはバグっぽい. -- // SASADA Koichi at atdot dot net