[#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

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

[#36800] 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:36784] Re: [Bug #650] Marshal.load raises RegexpError

From: Yukihiro Matsumoto <matz@...>
Date: 2008-10-18 15:18:19 UTC
List: ruby-dev #36784
まつもと ゆきひろです

In message "Re: [ruby-dev:36773] Re: [Bug #650] Marshal.load raises RegexpError"
    on Sat, 18 Oct 2008 07:05:07 +0900, Urabe Shyouhei <shyouhei@ruby-lang.org> writes:

|> |> 厳密に言うとmarshalに上位互換性がないのでmarshalのメジャーバー
|> |> ジョンを変化させるべきなのかもしれませんが、メリットよりもデ
|> |> メリットの方が大きいのでそれはしない方向を考えてます。
|>
|> |ちなみにどういうデメリットですか?
|>
|> 1.8と1.9でmarshalデータが全くやりとりできないというデメリッ
|> トです。
|
|まったくということはないでしょう。
|1.8で作ったデータを1.9が読めように1.9を作るのは可能なはずです。
|# 今でも、古いmarshal formatのデータを読もうとすると、警告が出るが処理自
|体はできるはず。

Marshalファイルフォーマットには、メジャーバージョンとマイナー
バージョンの情報が付加されており、マイナーバージョンの違いは
「上位互換性がある」ので「古いmarshal formatのデータを読もう
とすると、警告が出るが処理自体はできる」、メジャーバージョン
の違いは「互換性はないので古いデータは読めない」とする仕組み
があります。

今回の場合は、古いデータが新しいMarshalで読めない(Marshal以
外の部分の変更に影響を受けた)というものなので、Marshal側でで
きる対応は

 (1) 杓子定規に考えて、メジャーバージョンをあげる(1.8と1.9が
     通信できなくなる、うれしくない)

 (2) ささいな違いなので気にしない

 (3) 1.8で正規化する(すでに書き込んだデータは救済できないし、
     副作用もある)

 (4) 1.9側に1.8正規表現かどうか判別して1.9正規表現に変換する
     (おそらくは巨大な)ルーチンを追加する(苦労の割に得るもの
     が少ない、うれしくない)

くらいではないかと思います。現状のリソースから考えると、2か3
くらいがせいぜいではないかと思います。

                                まつもと ゆきひろ /:|)

In This Thread