[#23026] ruby compile/ruby-gtk — Taiji.Can@...
[#23031] description on fork and Process.fork — kjana@... (YANAGAWA Kazuhisa)
マニュアルみてて思ったんですけど,fork の記述に「失敗したら例外があが
In message <200006021503.AAA19483@mail3.os.xaxon.ne.jp>
In message <200006081406.e58E6JA16512@edge.sky.yamashina.kyoto.jp>
In message <200006091328.WAA23409@mail2.os.xaxon.ne.jp>
まつもと ゆきひろです
有馬です。
新井です。
まつもと ゆきひろです
[#23032] Racc Array#filter -> collect! — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>
Toshです。
[#23052] UTF-8 on print method — kenn@...
長沢です。
>SJIS に無い文字を出力する場合はどうすれば良いんでしょうか?
高橋征義です。
[#23061] rfc822.rb parse error — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋"rubyholic"秀仁です。
日時 Mon, 5 Jun 2000 21:23:17 +0900 の
[#23088] 文字列置換 — Takayuki Tanaka <tanaka@...>
Ruby初心者のTanです。
[#23095] setup.rb testrun — rubikitch <rubikitch@...>
るびきちです。
[#23096] http.rb will change — Minero Aoki <aamine@...>
あおきです。
まつもと ゆきひろです
高橋征義です。
まつもと ゆきひろです
青山です。
高橋です。
青山です。
高橋征義です。
青山です。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
TAKAHASHI Masayoshi <maki@inac.co.jp> wrote:
あおきです。
直井と申します.
In message "[ruby-list:23263] synchronize or lock"
In message <200006142243.HAA20586@hanare00.math.sci.hokudai.ac.jp>
[#23116] making Array — OZAWA Sakuro <crouton@...>
さくです。
[#23125] メソッドの中の動きを変える — Masahiro Kawata <kawata@...>
こんにちわ。かわた まさひろと申します。
From: Masahiro Kawata <kawata@titan.co.jp>
[#23156] ports — Wakou Aoyama <wakou@...>
青山です。
長沢です。
青山です。
青山です。
青山です。
まつもと ゆきひろです
青山です。
青山です。
まつもと ゆきひろです
青山です。
Toshです。
青山です。
Toshです。
青山です。
Toshです。
青山です。
Toshです。
[#23161] RDtool trouble. — rubikitch <rubikitch@...>
るびきちです。
[#23168] media watch 2000.06.08 — Noritsugu Nakamura <nnakamur@...>
[#23169] Kconv::guess(str) — NAWATE Masahiko <agul@...>
縄手@松江です。
In message "[ruby-list:23169] Kconv::guess(str)"
日時 Mon, 12 Jun 2000 22:10:19 +0900 の
[#23185] commonly used notation — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋"rubyholic"秀仁です。
[#23197] self の振る舞いを書き換えたいです — Kenya Ogata <k_ogata@...>
こんにちは、おがたといいます。
[#23222] readablity of RD — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
Toshです。
From: TAKAHASHI Masayoshi <maki@inac.co.jp>
高橋征義です。
おがたといいます。
Toshです。
おがたです。いくつか考えうる解決案を。
Toshです。
青山です。
青山です。
Toshです。
青山です。
Toshです。
青山です。
Toshです。
青山です。
Toshです。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
Toshです。
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
まつもと ゆきひろです
Toshです。
まつもと ゆきひろです
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
Toshです。
青山です。
Toshです。
まつもと ゆきひろです
Toshです。
まつもと ゆきひろです
Toshです。
[#23235] nkf MIME space handling — "Kikutani, Makoto" <kikutani@...>
nkfモジュールは、MIMEのデコードもしてくれますが、
わたなべです.
日時 Wed, 14 Jun 2000 13:27:29 +0900 の
こんにちは。鈴木教郎です。
日時 Wed, 14 Jun 2000 16:10:52 +0900 の
こんばんは。鈴木教郎です。
[#23277] net/smtp.rb extra lines ? — "Kikutani, Makoto" <kikutani@...>
どうも、最近自分の出したメイルに2行くらい余計な空行が最後に
[#23284] Ruby/zlib — Ueno Katsuhiro <unnie@...>
うえの@ぶるーすかいです。
[#23305] xmarshal.rb — Masatoshi SEKI <m_seki@...>
[#23311] UTF-8 in RubyBook — "Kikutani, Makoto" <kikutani@...>
Ruby本読み直しちう。
[#23356] rd2texi-lib.rb 最新版? — Noritsugu Nakamura <nnakamur@...>
[#23359] ASP — Yoshinori Tahara <platypus@...1.mbn.or.jp>
はじめまして、田原@鎌倉です。
[#23368] Message Digest (MD5) Function — Hagemu Higuchi <hahiguc@...11.odn.ne.jp>
cygwin32で使用しています。件名のような関数は
[#23372] (GMT+0500) — "Kikutani, Makoto" <kikutani@...>
curが堕ちる、というreportがあったので調べると日付が
あああ,ごめんなさい.脊髄で反応してしまいました (_ _).
[#23385] DBMS and ruby CGI — toyofuku@...
豊福です。
[#23410] Re: DBMS and ruby CGI — "Kahori Takeuchi" <EB89012@...>
こんにちは、時田です。
[#23411] dump a single object — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋"rubyholic"秀仁です。
まつもと ゆきひろです
石橋"rubyholic"秀仁です。いろいろとゴタクが長いです (^^;
なひです.
なかだです。
石橋"rubyholic"秀仁です。咳さん、こんばんわ。
石橋"rubyholic"秀仁です。
まつもと ゆきひろです
石橋"rubyholic"秀仁です。
石橋"rubyholic"秀仁です。どうも。
石橋"rubyholic"秀仁です。どうも。
[#23454] MHC in RAA — Yoshinari Nomura <nom@...>
乃村@九大です。
まつもと ゆきひろです
[#23477] Re: DBMS and ruby CGI — toyofuku@...
豊福です。
[#23485] Ruby 1.4.5 — matz@... (Yukihiro Matsumoto)
Ruby 1.4.5 is out, check out:
小松です。
まつもと ゆきひろです
どぉも、道村です。
小松です。
小松です。
どぉも、道村です。
小林です。
小林です。
どぉも、道村です。
小松です。
どぉも、道村です。
[#23504] 拡張ライブラリの作り方 — Akimichi Tatsukawa <akimichi@...>
立川と申します。はじめて投稿します。よろしくお願いします。
さくです。
From: OZAWA Sakuro <crouton@duelists.org>
小松です。
[#23509] Dimension of array — agul@...
縄手@松江です。
わたなべです.
原です。
縄手@松江です。
[#23519] media watch 2000.06.24 — Noritsugu Nakamura <nnakamur@...>
[#23558] ruby-1.4.5 GNUmakefile — IWATSUKI Hiroyuki <don@...>
岩月と申します。
[ruby-list:23431] persistent framework (Re: dump a single object)
石橋"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