ruby-trunk-changes r47713 - r47716

今日は複雑な include/prepend 関係での SEGV と、拡張ライブラリ stringio での Encoding 絡みの不具合の修正がありました。

normal: r47713 2014-09-26 05:18:22 +0900

man/ruby.1 に Thread と Fiber のそれぞれのマシンスタックサイズとVMスタックサイズをセットする環境変数の説明を追記しています。 [ruby-core:64717] [Feature #10197]

svn: r47714 2014-09-26 05:18:36 +0900

version.h の日付更新。

normal: r47715 2014-09-26 05:29:15 +0900

いまいちなぜ発生するか理解しきれてないのですが、オブジェクトのクラスの継承ツリーを辿って特異クラスや IClass を除いた普通のクラスを取得する関数 rb_class_real() で、辿っている途中で NULL になった時に SEGV する不具合を修正しています。 Module を include してメソッドを alias した Module を prepend したクラスの Method オブジェクトを取り出して inspect を呼ぶと起きるそうです。うーん、なんかこれは prepend 時の処理に考慮漏れがあるような気も。 [ruby-core:65214] [Bug #10282]

nobu: r47716 2014-09-26 12:52:37 +0900

拡張ライブラリ stringio で StringIO#set_encoding で ASCII-8BIT に設定しておいて別の Encoding の文字列を write で書き込むと Encoding::CompatibilityError が発生してしまう不具合を修正しています。 [ruby-core:65240] [Bug #10285]