[#36672] [Bug #616] instance_eval and Module#to_s — Shyouhei Urabe <redmine@...>

Bug #616: instance_eval and Module#to_s

12 messages 2008/10/06

[#36750] [Bug #650] Marshal.load raises RegexpError — Shyouhei Urabe <redmine@...>

Bug #650: Marshal.load raises RegexpError

30 messages 2008/10/15
[#36769] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/17

まつもと ゆきひろです

[#36771] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/17

卜部です。

[#36772] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/17

まつもと ゆきひろです

[#36773] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/17

卜部です。

[#36784] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/18

まつもと ゆきひろです

[#36785] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/18

卜部です。

[#36793] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/19

まつもと ゆきひろです

[#36794] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/19

Yukihiro Matsumoto さんは書きました:

[#36823] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/21

まつもと ゆきひろです

[#36830] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/21

もとの正規表現にバグがあるのは認めますが、それに巻き込まれてでかいPStore

[#36833] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/21

まつもと ゆきひろです

[#36764] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Martin Duerst <duerst@...>

まつもとさん、こんばんは。

11 messages 2008/10/17
[#36767] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Yukihiro Matsumoto <matz@...> 2008/10/17

まつもと ゆきひろです

[#36799] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Martin Duerst <duerst@...> 2008/10/20

まつもとさん、こんにちは。

[#36774] ConverterNotFoundError while making Ruby in Windows(trunk) — Masaki Suketa <masaki.suketa@...>

助田です。

13 messages 2008/10/17
[#36797] Re: ConverterNotFoundError while making Ruby in Windows(trunk) — "U.Nakamura" <usa@...> 2008/10/20

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

[#36789] [Bug #660] 数字を3桁ずつコンマで区切るsprintf書式指定 — "rubikitch ." <redmine@...>

Bug #660: 数字を3桁ずつコンマで区切るsprintf書式指定

13 messages 2008/10/19

[#37007] [Bug:1.9] 1+1+1+...+1 dumps core — "Yusuke ENDOH" <mame@...>

遠藤です。

13 messages 2008/10/31

[ruby-dev:36870] Re: [Bug #650] Marshal.load raises RegexpError

From: keiju@... (石塚圭樹)
Date: 2008-10-22 13:56:44 UTC
List: ruby-dev #36870
けいじゅ@いしつかです.

In [ruby-dev :36865 ] the message: "[ruby-dev:36865] Re: [Bug #650]
Marshal.load raises RegexpError ", on Oct/22 20:31(JST) Urabe Shyouhei
writes:

>卜部です。

>いや、まず例外が起きるなら現状と何ら変わりませんがな。

パラメータを指定するなら, 例外の捕捉を書いてもあまり変わらないと思いま
す. 

>失敗したやつはともかくとして、それ以外の部分データを救いたいのが動機
>です。

そうすると, 1.8で作成したデータを1.9で使えるようにコンバートしたいって
用途だと考えてよいでしょうか?

文字列と違って, 相手はオブジェクトなので, 再生を失敗したオブジェクトも
それなりのものに再変換する必要があると思います. 

また, 例えば, PStoreに入っているオブジェクト群を変換することを考えると,
ほとんどのものは正常に再生できることが多いと思いますので, 変換に失敗し
たものだけが例外になってもらった方がコンバートもしやすいです.

あと, 気になっているのが, 

  [1, 2, 3, <再生不能オブジェクト>]

が dump されていたとして, これをloadすると 何が帰ってくるのでしょう?
私は, まず例外を発生させて,

  [1, 2, 4, markerオブジェクト]

になるのかな? と考えていました. 例外を捕捉してから, オブジェクト内をス
キャンしていくイメージです. 卜部さんの案はどのように返ってくるのでしょ
う?

ただ, スキャンするといっても, 任意のオブジェクトのツリーのスキャンを一
般のユーザにやってもらうのは難しい気がしてきました. で, こんなのはいか
がでしょう?

obj = Marshal.load(src, invalid: proc{|invalid_info| ...})

再生不能オブジェクトに当たったら, 指定したprocを呼び出し, それなりのオ
ブジェクトを返してもらって, それをloadの返り値にアサインするというもの
です. これだったら, 複雑なネットワーク状になったオブジェクト群をloadし
た場合でも, それなりに対応できそうです.

>例外のほうがうれしい局面ってあるんでしょうかね。

converter的な使い方をするのであれば, 例外である必要はない気がします. 

>invalid: :replaceはもちろんString#encodeから引っ張ってきたアイディアです
>けど、

そうだったんですか... 
bladeで調べたんですけど, 探し方が悪いのか本質的な議論は見つかりません
でした. 他で議論されたものです?

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: [email protected] <<---

In This Thread