前田です。

Tanaka Akira wrote:
>>readを1.9と同じ挙動にした上で、Socketはデフォルトでnon-blocking
>>modeにしてしまってはどうでしょうか。
> 
> 
> 1.9 の IO#read を変えたのは私ですが、私としては 1.8 には代替案と警告を
> 入れて移行期間にするというスケジュールを考えていました。
> 
> 代替案と警告を入れるというのは [ruby-dev:25430] ですが、そのときには警
> 告に反対する人がいたので、まして挙動を変えるというなら反対する人が存在
> するであろうことは想像に難くありません。
> 
> なので、変えるんならそういう人に対するケアは必要でしょうね。

では、1.8では移行措置として、

* socketはデフォルトでnon-blocking modeにする。
* readの挙動も1.9と同様にする。
  (今の1.8の仕様では、non-blocking modeにすることによる挙動の違いが
  大きいため)
* ただし、ユーザが明示的にnon-blocking modeにした場合は、readの挙動
  を現状の1.8と同じ(読めるだけのデータをすぐに返し、single thread
  では読めるデータがない場合にはEAGAINを発生)にする。

というのはどうでしょう。

-- 
前田 修吾