遠藤です。

2011年10月19日0:35 KOSAKI Motohiro <kosaki.motohiro / gmail.com>:
> 今まで通り、MINORでもAPI/ABIは切れる。

たぶん、互換性の定義が違うんだと思いますが、今までは MINOR では
API/ABI は切れていなかった、という認識です。

「実害なさそうなABI非互換」は互換のうち。何が「実害なさそう」かは
明文化されてないですが、定義の話には立ち入りたくないですね。


> 1.9.3での非公開(のつもりの)APIを明示的にunexportにしたのだって、厳密に言えば非互換でしょう。

ドキュメントがない関数がどうなろうと「実害なさそうな非互換」だと
思います。

厳密な話なら、新しい Ruby メソッドを定義するだけで、かつては
NoMethodError が投げられていた挙動が変わるわけなので非互換、と
なるんですかね。この辺は大人の対応が求められていると思います。


> わたしは逆になぜmameさんがMINORで互換性が切れることにセンシティブなのかが、
> あまり理解できませんでした。

むしろ逆で、今まで以上に ABI 互換性に気を使わなくていいように
しよう、という趣旨のつもりです。

ソースレベルの互換性は今まで程度には保証してほしいと思いますが、
仕様バグによるセキュリティ問題でやむを得ず API 変える程度では、
原理主義的に MAJOR バージョンアップする必要はないと思います。

-- 
Yusuke Endoh <mame / tsg.ne.jp>