今日は Array#sort! のメモリリークの修正がありました。まだこんなことろにメモリリークが残っているとは。
nobu: r51142 2015-07-04 20:54:04 +0900
Enumerable#all?, #any?, one?, none? のテストケースに要素が空の時を追加しています。
svn: r51145 2015-07-05 01:53:14 +0900
version.h の日付更新。
normal: r51146 2015-07-05 09:40:14 +0900
test/ruby/test_process.rb に Kernel#exec のオプションに 3 => io のように fd=3 のリダイレクト先を指定するオプションの使いかたのテストを追加しています。 fd=3 は CRuby の場合 timer thread の通知用の pipe に利用されているのですが、systemd が子プロセスに fd を渡す時にも利用されるものなので、起動プロセスに systemd を利用したシステムでは fd=3 のリダイレクトは失敗するかもしれない、ということかな。ちょっと意図はよくわかりませんでした。でも RubyCI をみるとこのテスト Solaris で失敗しているみたいですね。
nobu: r51147 2015-07-05 10:51:51 +0900
Array#sort! で要素数が少なくて struct RVALUE の中に埋め込めるけど実際には埋め込まれてなくてヒープを使っている配列に呼ばれると ARY_SHARED_P() の分岐の中に入っていたため、共有されていない埋め込み型の配列に対して呼ばれた時に、埋め込みじゃないのに埋め込みフラグを立ててしまってメモリリークが発生することがある不具合を修正しています。 おおー、これ再現スクリプトをみてたけど埋め込みの有無が問題だったのかー。 [ruby-dev:49166] [Bug #11332]
nobu: r51148 2015-07-05 11:03:11 +0900
r51146 で追加された Kernel#exec で fd=3 をリダイレクトするテストで子プロセスの終了を待っていなかったので Process.wait を追加しています。
nobu: r51149 2015-07-05 12:56:25 +0900
README.md のバグ報告の方法のセクションに https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport へのリンクを追記しています。 また Contributing セクションを追加して CONTRIBUTING.md を参照するようにと追加しています。 https://github.com/ruby/ruby/pull/953