[#18186] [req] Marshal — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

14 messages 2002/09/05
[#18190] Re: [req] Marshal — matz@... (Yukihiro Matsumoto) 2002/09/05

まつもと ゆきひろです

[#18229] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

22 messages 2002/09/09
[#18230] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — nobu.nakada@... 2002/09/09

なかだです。

[#18231] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18232] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — nobu.nakada@... 2002/09/09

なかだです。

[#18233] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18234] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — WATANABE Hirofumi <eban@...> 2002/09/09

わたなべです。

[#18236] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18238] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — WATANABE Hirofumi <eban@...> 2002/09/09

わたなべです。

[#18241] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18285] rubicon on EWS4800 — Koji Arai <JCA02266@...>

新井です。

59 messages 2002/09/13
[#18322] Re: rubicon on EWS4800 — Koji Arai <JCA02266@...> 2002/09/21

新井です。

[#18333] Re: rubicon on EWS4800 — kjana@...4lab.to (YANAGAWA Kazuhisa) 2002/09/21

In message <20020921.152641.11483667.JCA02266@nifty.ne.jp>

[#18336] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18337] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211605.g8LG52p04564@sharui.nakada.kanuma.tochigi.jp>,

[#18338] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18341] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211628.g8LGSxp04786@sharui.nakada.kanuma.tochigi.jp>,

[#18342] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18343] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211739.g8LHdKp05495@sharui.nakada.kanuma.tochigi.jp>,

[#18345] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/22

なかだです。

[#18349] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/22

In article <200209220415.g8M4Fkp24392@sharui.nakada.kanuma.tochigi.jp>,

[#18374] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...>

わたなべです。

20 messages 2002/09/25
[#18376] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — matz@... (Yukihiro Matsumoto) 2002/09/25

まつもと ゆきひろです

[#18377] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — nobu.nakada@... 2002/09/25

なかだです。

[#18378] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...> 2002/09/25

わたなべです。

[ruby-dev:18312] Re: [req] Marshal

From: Tanaka Akira <akr@...17n.org>
Date: 2002-09-17 16:24:00 UTC
List: ruby-dev #18312
すこし眠ったら何かよさそうなやりかたを見つけたような気分になったので、
書いておきます。

In article <1032246312.279467.25657.nullmailer@picachu.netlab.jp>,
  matz@ruby-lang.org (Yukihiro Matsumoto) writes:

>  * 他のオブジェクトではインスタンス変数は出力されている
> 
>  * Rubyの性質上自分にインスタンス変数が追加されているかどう
>    かは_dumpは(わざわざそうしない限り)知りえない
> 
> という条件から出力されるべきだと考えます。

疑問としては、T_OBJECT な連中に関しては、無条件にインスタンス変数を出
力されると _dump/_load を定義する意味がほとんどなくなるのではないかと
いうことがあります。すべてのインスタンス変数は Marshal.load で再生され
るので、_dump で処理するかわりに Marshal.load した後にでも処理できるか
らです。もし、それでも _dump/_load が必要な場合があるとしたら、インス
タンス変数以外の情報(クラス変数など)を扱う場合でしょうが、具体的なケー
スは思いつきません。

で、思ったんですが、

In article <1032250289.346705.29052.nullmailer@picachu.netlab.jp>,
  matz@ruby-lang.org (Yukihiro Matsumoto) writes:

> これは「こういうのが欲しい」というリクエストで暫定的という約
> 束で取り込んだものです。_dump/_loadよりもマシなフレームワー
> クが出来れば統合されます。その場合互換性は無視されます。

そういうマシなフレームワークとして、_dump の返り値としに String 以外の
任意のオブジェクトを許し、_load をインスタンスメソッドにするというのは
どうでしょうか。

つまり、_dump があるオブジェクト o をダンプするときは、

  o.class の名前を出力
  o._dump の結果をダンプ

とし、ロードする時には、

  クラスの名前 C を入力し、o = C.allocate
  オブジェクト d をロードし、o._load(d)

とするわけです。

たとえば、Time の場合には、_dump が
  [year, month, day, hour, min, sec, usec,
   instance-variable-name-1, instance-variable-value-1,
   instance-variable-name-2, instance-variable-value-2,
   ...]
というような値を返せばいいでしょう。もちろん、同じ情報を持っていればもっ
と他の形でもかまいませんが。

なお、むろん互換性を保つためには C#_load がなくて C._load だけがある場
合に関する仕掛けが必要です。copy_object を使えば o._load(d) は
copy_object(o, C._load(d)) で実装できるでしょうが、この場合はどうせ
String === d なのでそこまでする必要はない、かな。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)

In This Thread

Prev Next