[ruby-list:48685] Re: klass と Marshal.load(Marshal.dump klass) が同じにならない

From: Yukihiro Matsumoto <matz@...>
Date: 2012-04-07 03:03:27 UTC
List: ruby-list #48685
まつもと ゆきひろです

In message "Re: [ruby-list:48683] klass と Marshal.load(Marshal.dump klass) 	が同じにならない"
    on Fri, 6 Apr 2012 20:55:04 +0900, dezawa <dezawa@aliadne.net> writes:

|1: このgenerator をrdoc で使えるようにするにはどうしたら良いでしょう
|  rdoc.rb 内でrequire すれば使えることは分かるのですが、
|  それですと rdoc.rb を書き直すか cp して専用を作るかしないと。
|  rdocやrdoc.rb自体に手を入れずに、例えば
|       rdoc -r generator/latex
|    のように行う方法はないでしょうか。
|
|2: リファクタ中に思わぬトラブルがあって調べていて気がついたのですが
|   klass と RDoc::RI::Store#save_class klass 内で作っている
|     marshal = Marshal.dump klass
|   を Marshal.load marshal したものと内容が変わります。
|   klass == Marshal.load(Marshal.dump klass)
|   これは trueなのですが、ppした中身がちがいます。

正直なところ情報が少なくてなんともいいがたいのですが、
Marshalはクラスやモジュールは中身をコピーするのではなく名前で
参照します。ですから、同じプロセスでこの2つが違うというのは
あまり考えにくいのですが。object_idとかでこの2つが本当に同
じものか確認していただけませんか?

In This Thread