ruby-trunk-changes r56469 - r56473

今日はメソッド引数の *ary で展開される配列の扱いの修正などがありました。

nobu: r56469 2016-10-22 09:52:59 +0900

メソッドの引数に *ary のように配列を splat して渡す時に元の配列を dup しておくようにして、続く引数で同じ配列に破壊的メソッドで変更を加えた時にその影響が現われないようにしています。引数は左から評価されるという直感の通りに挙動するように修正しています。 [ruby-core:77701] [Bug #12860]

svn: r56470 2016-10-22 09:53:00 +0900

version.h の日付更新。

nobu: r56471 2016-10-22 10:27:04 +0900

configure.in の RUBY_APPEND_OPTION と RUBY_PREPEND_OPTION の定義で第2引数を展開するところのクオートがシングルクオートになっていたのをダブルクオートに修正しています。

nobu: r56472 2016-10-22 10:28:30 +0900

r56471 の修正はこの修正のための前置きだったようですが、DLDFLAGS を LDFLAGS で初期化して、主要なプラットフォームで LIBRUBY_DLDFLAGS をセットするところで RUBY_APPEND_OPTION を使って LDFLAGS の指定が影響するようにしているようです。 [ruby-core:72444] [Bug #11863]

nobu: r56473 2016-10-22 18:52:35 +0900

Hash#compact! で値が nil の要素がなくて削除が行なわれなかったら nil を返すように変更しています。確かに ! で終わる Enumerable の破壊的メソッド群は変更がなかったら nil を返すのが慣例ですしね。と思ったら ActiveSupport の Hash#compact! と挙動が違うという指摘だったようです。 [ruby-core:77709] [Bug #12863]