From: Yusuke ENDOH Date: 2010-01-30T20:36:47+09:00 Subject: [ruby-dev:40260] Re: [Bug #2658] rubyspec: Ruby character strings interpolates the return value of Object#inspect, without ivars, if Object#to_s does not return a String instance ERROR 遠藤です。 2010年1月30日13:52 Yugui (Yuki Sonoda) : > On 1/27/10 6:29 PM, Yukihiro Matsumoto wrote: >> |挙動は現状のままにするとして、 >> | >> |1. この挙動は 1.9.2 からの仕様変更 (1.9.1 はそのまま) >> |2. この挙動は 1.9 からの仕様変更 (1.9.1 にもバックポートする) >> |3. この挙動は 1.8/1.9 の仕様 (1.8.x にもバックポートする) >> | >> |のどれとすべきでしょうか。rubyspec の修正依頼の内容に影響します。 >> >> 1または2でしょうね。どちらにするかはYuguiさんにお任せします。 > > 1にします。そしてrubyspecを添付のpatchのように変更することを提案します。 ありがとうございます。そして patch に賛成します。 > 理由としては > * 1.8や1.9.1の挙動を今更意味なく変えるのは反対です。 > * 1.9.2のポリシーは、それはそれで肯けるので、ならば挙動は維持してrdocを > 合わせましょう。 1.9.2 からの仕様変更というのに多少抵抗はありますが、了解です。 > * inspectが何を表示するかは実装依存であるべきです。rb_any_to_s、つまり > デフォルトのto_sとも独立であるべきです。 > * 当該のspecはrb_any_to_sとinspectを混同しています。 混同というか、rdoc を無視して rb_obj_inspect の実装をまるごと spec に したんでしょうね。 inspect はほかにもそこらじゅうで spec にされてしまっているので、いずれ 直さないと、と思います。 human-readable representation というのは機械判定できないけれど、 - ASCII-8BIT 以外のエンコーディングで、valid_encoding? が true になる くらいは仕様にしてもいい気がする。 -- Yusuke ENDOH