ruby-trunk-changes r45720 - r45725

今日は "**h" で Hash をキーワード引数や Hash リテラル内に展開して渡す記法で、渡した Hash に破壊的変更が行なわれることがあった不具合の修正がありました。

ngoto: r45720 2014-04-25 23:28:56 +0900

FileUtils.rmdir で発生する可能性があるので rescue されている例外に、Solaris で発生するということで Errno::EEXIST を追加しています。 [ruby-dev:48017] [Bug #9571]

akr: r45721 2014-04-26 08:07:28 +0900

test/ruby/test_process.rb で Process.setrlimit で RLIMIT_NOFILE に渡す制限値を 0 or 1 にしていたのを利用中の file descriptor (IO.pipes で pipe を生成してその fileno を使っているので、おそらくその時点で利用中の fd を得ようとしているのではないかと思います。IO.pipes で得る fd が他の利用中のものより小さい可能性もあるとは思いますが)に変更しています。

svn: r45722 2014-04-26 08:07:32 +0900

version.h の日付更新。

akr: r45723 2014-04-26 09:21:34 +0900

r45721 で追加した Process.setrlimit のテストのコメントを更新しています。

nobu: r45724 2014-04-26 10:55:34 +0900

キーワード引数に Hash オブジェクトを展開して渡す meth(**h) のような "**" を使った記法で、その後にキーワード引数が続くような時に渡した Hash オブジェクトが変更されてしまう不具合を修正しています。 [ruby-core:62161] [Bug #9776]
チケットでは Hash リテラルに "**" で展開した時の例で書かれていますがキーワード引数の時も同様みたいです。というか Hash リテラルでの "**" での展開っていつからできたっけ…?

hsbt: r45725 2014-04-26 11:53:54 +0900

Enumerable#flat_map のテストが存在していなかったのを追加しています。 https://github.com/ruby/ruby/pull/598