とみたです。

On Sat, 8 Jan 2005 13:55:09 +0900
Tanaka Akira <akr / m17n.org> wrote:

> 1.8 に以下の変更を行いたいんですが、どうでしょうか?
> 
> * nonblocking な IO#read を警告
>   むろん nonblocking でない時には警告しません

> 警告を行う理由は、nonblocking な IO#read の挙動が 1.9 で変わるからです。
> この変化の理由は [ruby-dev:25101] で述べましたが、具体例でいえば
> [ruby-dev:25379] のように、nonblocking IO を考慮せずに記述したコードが
> nonblocking IO でも使用できるようになるというものです。そして、1.9 を
> 変えてしまったので、その変化を事前に警告するには 1.8 で警告するしかあ
> りません。

1.8.2 までは警告が出なかったものが 1.8.3 では警告が出るようになるとい
うことでしょうか? であれば、反対です。

# 以下、IO#read の挙動の話ではなく、一般的な話になってしまいますが…。

1.8.2 を 1.8.3 に上げる人の多くが期待しているのは、「1.8.2 と互換を持
ちつつ、1.8.2 リリース後のバグが修正されていること」だと思うからです。
そういう人に取っては、1.9 で変更がされるからと言って 1.8.x で警告が出
されるのは迷惑以外の何者でもありません。

1.8.2 を 1.8.3 にすることで、正常に動作していたスクリプト達の修正を余
儀なくされるのは、勘弁願いたいです。

# セキュリティの問題とか、実は正常に動作しているように見えたのがバグだ
# ったとか…という場合は除きます。

以前から「振る舞いが変わることについて事前に警告を出す」というのは、ほ
とんど意味がないと思ってました。 1.9 のリリース時に、ちゃんと「互換の
ない変更」「注意すべき変更」というドキュメントがあれば十分ではないかと。

その昔 cgi#[] で行なわれたような、以前の振る舞いを期待しているスクリプ
トを救うためにトリッキーな実装をするというのも迷惑なだけだと思ってます。
結局、完全な互換が保てないのなら、以前の振る舞いを期待する人にとっても、
新しい振る舞いを期待する人にとっても、不幸なだけかと…。

-- 
とみたまさひろ <tommy / tmtm.org>