In article <48F90C3D.80609 / ruby-lang.org>,
  Urabe Shyouhei <shyouhei / ruby-lang.org> writes:

> 気づいたんですけど、それだと
>
> % ruby1.9 -e 'Marshal.dump(/\u0001/, STDOUT)' | \
>   ruby1.8 -e 'Marshal.dump(Marshal.load(STDIN), STDOUT)' | \
>   ruby1.9 -e 'p Marshal.load(STDIN)'
>
> とかがroud-tripしなくなると思う(いまはする)んですけど、平気なんですかね。

syntax と semantics のどちらを保存するかというと、semantics
のほうがいいんじゃないですかね。

今は以下のように、マッチするものが変化するわけで、それが変化
しないようになるほうがまだマシなんじゃないでしょうか。

% ruby-1.8 -e 'print Marshal.dump(/\u0001/)' > z
% ruby-1.8 -e 'r = Marshal.load(STDIN); p ["\x01", "u0001"].map {|s| r =~ s }' < z     
[nil, 0]
% ruby-1.9 -e 'r = Marshal.load(STDIN); p ["\x01", "u0001"].map {|s| r =~ s }' < z
[0, nil]
-- 
[田中 哲][たなか あきら][Tanaka Akira]