ruby-trunk-changes r51142 - r51150

今日は Array#sort! のメモリリークの修正がありました。まだこんなことろにメモリリークが残っているとは。

nobu: r51142 2015-07-04 20:54:04 +0900

Enumerable#all?, #any?, one?, none? のテストケースに要素が空の時を追加しています。

kazu: r51144 2015-07-05 01:52:37 +0900

r51126 の ChangeLog エントリの typo 修正。

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

nagachika: r51150 2015-07-05 14:54:10 +0900

r51149 の README.md の追記について GitHub で指摘されていた typo を修正しています。