[#23031] description on fork and Process.fork — kjana@... (YANAGAWA Kazuhisa)

マニュアルみてて思ったんですけど,fork の記述に「失敗したら例外があが

21 messages 2000/06/02
[#23114] Re: description on fork and Process.fork — Takahiro Kambe <taca@...> 2000/06/08

In message <200006021503.AAA19483@mail3.os.xaxon.ne.jp>

[#23136] Re: description on fork and Process.fork — kjana@... (YANAGAWA Kazuhisa) 2000/06/09

In message <200006081406.e58E6JA16512@edge.sky.yamashina.kyoto.jp>

[#23138] Re: description on fork and Process.fork — Takahiro Kambe <taca@...> 2000/06/09

In message <200006091328.WAA23409@mail2.os.xaxon.ne.jp>

[#23139] Re: description on fork and Process.fork — matz@... (Yukihiro Matsumoto) 2000/06/09

まつもと ゆきひろです

[#23148] Re: description on fork and Process.fork — ARIMA Yasuhiro <fit0298@...> 2000/06/11

有馬です。

[#23150] Re: description on fork and Process.fork — Koji Arai <JCA02266@...> 2000/06/11

新井です。

[#23096] http.rb will change — Minero Aoki <aamine@...>

あおきです。

42 messages 2000/06/08
[#23100] Re: http.rb will change — matz@... (Yukihiro Matsumoto) 2000/06/08

まつもと ゆきひろです

[#23101] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/08

高橋征義です。

[#23103] Re: http.rb will change — matz@... (Yukihiro Matsumoto) 2000/06/08

まつもと ゆきひろです

[#23109] Re: http.rb will change — Wakou Aoyama <wakou@...> 2000/06/08

青山です。

[#23113] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/08

高橋です。

[#23124] Re: http.rb will change — Wakou Aoyama <wakou@...> 2000/06/08

青山です。

[#23130] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/09

高橋征義です。

[#23131] Re: http.rb will change — Wakou Aoyama <wakou@...> 2000/06/09

青山です。

[#23135] Re: http.rb will change — Minero Aoki <aamine@...> 2000/06/09

あおきです。

[#23149] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/11

高橋征義です。

[#23174] Re: http.rb will change — Minero Aoki <aamine@...> 2000/06/12

あおきです。

[#23125] メソッドの中の動きを変える — Masahiro Kawata <kawata@...>

こんにちわ。かわた まさひろと申します。

11 messages 2000/06/09

[#23156] ports — Wakou Aoyama <wakou@...>

青山です。

37 messages 2000/06/11
[#23194] Re: ports — kenn@... 2000/06/12

長沢です。

[#23199] Re: ports — Wakou Aoyama <wakou@...> 2000/06/12

青山です。

[#23268] Re: ports — Noritsugu Nakamura <nnakamur@...> 2000/06/15

[#23273] Re: ports — Wakou Aoyama <wakou@...> 2000/06/15

青山です。

[#23278] Re: ports — Noritsugu Nakamura <nnakamur@...> 2000/06/15

[#23279] Re: ports — Wakou Aoyama <wakou@...> 2000/06/15

青山です。

[#23280] Re: ports — matz@... (Yukihiro Matsumoto) 2000/06/15

まつもと ゆきひろです

[#23282] Re: ports — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23289] RD on www.ruby-lang.org (Re: ports) — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23291] Re: RD on www.ruby-lang.org (Re: ports) — matz@... (Yukihiro Matsumoto) 2000/06/16

まつもと ゆきひろです

[#23293] Re: RD on www.ruby-lang.org (Re: ports) — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23222] readablity of RD — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

78 messages 2000/06/13
[#23224] Re: readablity of RD — rubikitch <rubikitch@...> 2000/06/13

From: TAKAHASHI Masayoshi <maki@inac.co.jp>

[#23234] Re: readablity of RD — TAKAHASHI Masayoshi <maki@...> 2000/06/14

高橋征義です。

[#23246] Re: readablity of RD — Kenya Ogata <k_ogata@...> 2000/06/14

おがたといいます。

[#23255] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/14

Toshです。

[#23271] Re: readablity of RD — Kenya Ogata <k_ogata@...> 2000/06/15

おがたです。いくつか考えうる解決案を。

[#23275] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/15

Toshです。

[#23295] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23296] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23307] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/17

Toshです。

[#23310] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/17

青山です。

[#23320] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/17

Toshです。

[#23328] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/17

青山です。

[#23335] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/18

Toshです。

[#23349] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/18

青山です。

[#23470] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/22

Toshです。

[#23471] Re: readablity of RD — matz@... (Yukihiro Matsumoto) 2000/06/22

まつもと ゆきひろです

[#23563] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/27

青山です。

[#23570] Re: readablity of RD — matz@... (Yukihiro Matsumoto) 2000/06/28

まつもと ゆきひろです

[#23600] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/29

Toshです。

[#23603] Re: readablity of RD — Yasunari Momoi <momo@...> 2000/06/29

From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>

[#23605] Re: readablity of RD — matz@... (Yukihiro Matsumoto) 2000/06/29

まつもと ゆきひろです

[#23611] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/29

Toshです。

[#23235] nkf MIME space handling — "Kikutani, Makoto" <kikutani@...>

nkfモジュールは、MIMEのデコードもしてくれますが、

13 messages 2000/06/14

[#23410] Re: DBMS and ruby CGI — "Kahori Takeuchi" <EB89012@...>

14 messages 2000/06/21

[#23411] dump a single object — Hideto ISHIBASHI <hideto-i@...4u.or.jp>

石橋"rubyholic"秀仁です。

34 messages 2000/06/21
[#23412] Re: dump a single object — matz@... (Yukihiro Matsumoto) 2000/06/21

まつもと ゆきひろです

[#23424] Re: dump a single object — Masatoshi SEKI <m_seki@...> 2000/06/21

[#23434] Re: dump a single object — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/06/21

石橋"rubyholic"秀仁です。咳さん、こんばんわ。

[#23437] Re: dump a single object — Masatoshi SEKI <m_seki@...> 2000/06/21

[#23485] Ruby 1.4.5 — matz@... (Yukihiro Matsumoto)

Ruby 1.4.5 is out, check out:

35 messages 2000/06/23
[#23489] Re: Ruby 1.4.5 — Katsuyuki Komatsu <komatsu@...> 2000/06/23

小松です。

[#23495] Re: Ruby 1.4.5 — matz@... (Yukihiro Matsumoto) 2000/06/23

まつもと ゆきひろです

[#23518] Re: Ruby 1.4.5 — MICHIMURA Tadao <MICHIMURA.Tadao@...> 2000/06/26

どぉも、道村です。

[#23521] Re: Ruby 1.4.5 — Katsuyuki Komatsu <komatsu@...> 2000/06/26

小松です。

[#23522] Re: Ruby 1.4.5 — Katsuyuki Komatsu <komatsu@...> 2000/06/26

小松です。

[ruby-list:23431] persistent framework (Re: dump a single object)

From: Hideto ISHIBASHI <hideto-i@...4u.or.jp>
Date: 2000-06-21 17:20:30 UTC
List: ruby-list #23431
石橋"rubyholic"秀仁です。いろいろとゴタクが長いです (^^;
「質問」という見出しの部分だけ読んでくだされば。

目的は「Marshalと同じ機能で、バイトストリングでなく、
表形式で出力する」ことです。
# Subjectを「永続化フレームワーク」に変えました。なんて大層な・・・

まつもとさん、お返事ありがとうございます。

From: matz@netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-list:23412] Re: dump a single object

> まつもと ゆきひろです

> |Marshal.dump(obj) などで、インスタンス変数をたどらず、
> |obj そのものだけを serialize する方法はありませんか。
> 
> 良く分からないのですが、インスタンス変数をたどらなければ、ご
> く一部のオブジェクトを除いては「あるクラスのインスタンス」と
> いう情報しかないので無意味でないですか?

# ぼくがなんか誤解しているかもしれません (^^;

「たどらない」というのは言葉の選択ミスで、おわびします。
「重複しないで identity も失わない」という意図です。

そのためには、「あるクラスのインスタンス」を ID で参照します。
この文章では、"Object#id" と "ID" を使い分けています。
"ID" は、この仕組で独自に定義する、オブジェクト固有の ID です。
# MS の COM だかでは GUID (Global Unique Identifier) と呼ぶやつ?
# mail の Message-ID などを想像してもらえば。

コード例:
  class Foo
    def initialize(foo)
      @foo = foo
    end
  end
  class BarBaz
    def initialize(bar, baz)
      @bar = bar
      @baz = baz
    end
  end
  fooa = Foo.new("a")
  foob = Foo.new(fooa)
  fooc = Foo.new(foob)
  bara = BarBaz.new(fooa, foob)
  barb = BarBaz.new(fooc, bara)

(いいかげんな) オブジェクト表:
 class Foo
  name :  ID  : @foo 
 ----------------------
  fooa : foo1 : "a"
  foob : foo2 : fooa
  fooc : foo3 : foob

 class BarBaz
  name :  ID  : @bar : @baz
 ---------------------------
  bara : bar1 : fooa : foob
  barb : bar2 : fooc : bara

 class String
   name  :  ID  : value
 -----------------------
  (none) : str1 :  "a"

上表の '@foo' や 'value' の項目に ID を使い、
クラスを持たせて全オブジェクトを一括表記:

   ID  :  class  : attr/value (Hash?)
 --------------------------------------------
  foo1 :   Foo   : @foo => str1
  foo2 :   Foo   : @foo => foo1
  foo3 :   Foo   : @foo => foo2
  bar1 :  BarBaz : @bar => fooa, @baz => foob
  bar2 :  BarBaz : @bar => fooc, @baz => bara
  str1 :  String : value => "a"

この表から元のオブジェクト群が復元できます (よね?)。
復元時に無いオブジェクトは Marshal と同様のイモヅル式。
復元済みのオブジェクトはキャッシュから参照を返します。

同じ "ID" を持つオブジェクトは存在しない。
同じ "Object#id" を持つオブジェクトも存在しない。
だから identity も保存/復元される、というつもりです。

<質問 1>
 String は identity があり、Integer は immutable で
 identity がないんですよね。区別が必要かどうか・・・
 オブジェクトに Object#id のほうの ID を設定する方法ないですよね。
</質問 1>

最初にイモヅルの「とっかかり」になるオブジェクトが必要です。
これは、なんらかの条件にヒットする最初のオブジェクトです。
つまり Enumerable#find {...} の返り値と同じ考えかたです。

もっとも単純な key として、アプリケーションが "ID" か "Object#id"
でアクセスすることを考えています (Hash#[key] みたいに)。

<質問 2> 組み込みオブジェクト
 上表の str1(String) に value => "a" と書きました。こういう、
 インスタンス変数に値がなく、「そのもの」が値のクラスは
 どうしましょうか?組込みクラスなど、値の設定 (状態の復元) 法を
 個別に把握するとかかなぁ。

 そういうクラス (組込みだけ?) をサポートすれば、
 それですべて解決だと思うのですが・・・。
</質問 2>


<質問 3> オブジェクトのクラスは Object#type か?
 特異オブジェクトの Object#type は、最初に new したクラスを
 返すと思っています。特異メソッドを定義したり、特異クラス
 としてインスタンス変数を定義したりしたオブジェクトとかは?

 copy = obj.type.new してから特異メソッドの定義を復元する方法は
 ありませんよね (Method クラスとかよくわかっていないので ^^;)。
 Object#instance_eval("...")でインスタンス変数は復元できますね。
</質問 3>

# まあ特異なオブジェクトなんてふつー永続化しないでしょう・・・
# Marshal.dump も拒否するのですから。退行はしてないはず。


というわけで、中心課題は、
  「インスタンス変数を個別に直列化するには?」
です。で、たぶん苦しんで Marshal を再利用するより、
XMarshal 方式 (hoge_dump, hoge_load メソッドを用意する/させる)
のが楽かも。なにしろ自分の管理下に置けるので。

よし、そうしよう。書いてるうちに結論が出てしまった (^^;

<質問 4> 矛盾点とか
どこかおかしいところを指摘して下さい > みなさま
間違いがなければ 80% くらいできたようなもんで、
あとは最後までぼくが飽きないことですね (^^;
</質問 4>


> marshalは「壊れたオブジェクトをdump/loadしない」というポリシー
> から、「limitを越えた時点でエラー無しで中断」という挙動を提
> 供していません。

それは尊重します。現状は安全で便利ですので。
セキュリティの問題もありますしね。


> |# 最近話題の xmarshal.rb で、「複数のオブジェクトのインスタンス
> |# 変数として参照されているオブジェクトは、重複してダンプされる」
> |# という問題も、これが原因でしょうか。
> 
> たぶん、違うと思います。marshalは一度dumpしたオブジェクトを
> ぜんぶテーブルにいれて「これはもう出力したな」というチェック
> を行ってますが、xmarshalはそれを行っていないのでしょう。とい
> うか、しないのが普通で、してるmarshalが普通でないような気が
> しますが。

あ、そうですね。ちょっと勘違いしていました。失礼しました (^^;
そもそも Marshal や Object#_dump/_load は使ってませんもんね。

で、ぼくのやりたいのは、チェック*する*ほうです。ざっくり言えば、
Marshal の出力形式が Hash になるというやつです。

P.S.
こんなことやってるから blade clone は中断されてます。
やめてはいません (^^;。それのための persistent framework です。

--
Hideto "rubyholic" ISHIBASHI http://www.rr.iij4u.or.jp/~hideto-i/
blade clone: http://www.rr.iij4u.or.jp/~hideto-i/rb/yaiba/index.html

In This Thread