ruby-trunk-changes r57377 - r57386

今日は Array#sample の一部条件での高速化、SecureRandom で利用する乱数源の優先度の変更などがありました。

nobu: r57377 2017-01-20 10:02:37 +0900

r57370 の Kernel#warn で Warning.warn を呼ぶようにした変更に関連して空文字列の時に追加する改行コードを rb_default_rs を使うようにしています。 [ruby-core:78156] [Feature #12944]

svn: r57378 2017-01-20 10:02:38 +0900

version.h の日付更新。

nobu: r57379 2017-01-20 11:27:28 +0900

大きなサイズの配列に対する Array#sample を呼ぶと引数が 10 よりも大きい時に非常に遅くなるというのを改善するという [Bug #13136] のチケットのためにまずベンチマークスクリプトを追加しています。

nobu: r57380 2017-01-20 11:39:27 +0900

r57379 でベンチマークを追加した Array#sample について大きなサイズの配列から 11以上の要素を取り出す時に配列サイズに応じた処理の切り替えをするようにして高速化しています。 [ruby-dev:49956] [Bug #13136]

nobu: r57381 2017-01-20 13:27:55 +0900

条件分岐の条件に defined? が書かれていた時に生成する VM 命令を少し最適化しています。

shyouhei: r57382 2017-01-20 15:01:23 +0900

random.c で利用している SipHash の実装を SipHash24 から SipHash13 に変更しています。こちらのほうが高速で、かつ充分に Secure だから、ということかな? [ruby-core:78549] [Feature #13017]

nobu: r57383 2017-01-20 16:45:10 +0900

r55505 で GNUMakefile.in で sub-make に渡す時に -j オプションを filter-out で削るようにしていたのをコメントアウトしています。 make test-all の並列化が伝播しなくなっていたのを戻したみたいです。

shyouhei: r57384 2017-01-20 17:00:00 +0900

Random.raw_seed を Random.urandom に改名して、標準添付ライブラリ securerandom で OpenSSL の実装よりも先に Random.urandom の実装を試すようにしています。 [ruby-core:61094] [Bug #9569]

nobu: r57385 2017-01-20 19:59:47 +0900

ext/extmk.rb で自動生成されたファイルを検出して extconf.rb からやりなおしになるのを避けるように条件を調整しています。

kazu: r57386 2017-01-20 22:33:06 +0900

lib/rbconfig/datadir.rb という標準添付ライブラリを削除しています。既に 2011年から deprecated になってました。