preview2 といっても毎日ビルドしているので特に限定したものではないのだけど、最新の trunk では Object#initialize_dup が public から private に変わったようで、この影響で Rails に多数存在する以下のコードが動かなくなってしまった。
https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/base.rb#L563
# Backport dup from 1.9 so that initialize_dup() gets called
unless Object.respond_to?(:initialize_dup)
def dup # :nodoc:
copy = super
copy.initialize_dup(self)
copy
end
end
1.9 にある initialize_dup を 1.8 にバックポートしているんだけど、2.0 では initialize_dup が private になったので、この respond_to? を通過してしまうというのが原因みたい。respond_to? は二つ目の引数に true をつけると private でも動くようになるので直しておいた。
https://github.com/rails/rails/pull/8405
あと、Marshal#dump 付近で何か落ちてるような気がするのでこれは明日。