ruby-trunk-changes r55896 - r55901

今日は method entry テーブルの拡張時の不具合による SEGV の修正などがありました。

nobu: r55896 2016-08-14 22:35:42 +0900

id_table.c の hash_table_extend() で struct hash_id_table::num を元にした新しい capacity が元々の capacity より小さい時に struct hash_id_table::used を元に計算しなおすようにしています。 collision が起きた時に used は num よりも大きくなっている可能性があるので拡張時に必要なサイズまで確保されない可能性があったみたいです。 [ruby-core:76534] [Bug #12614]

nobu: r55897 2016-08-15 10:59:58 +0900

Float#round で round(3) が使えない環境をサポートするようにして、符号に応じた丸めを行なっていた処理を round_to_nearest() という関数に切り出しています。

svn: r55898 2016-08-15 10:59:59 +0900

version.h の日付更新。

nobu: r55899 2016-08-15 11:46:53 +0900

tk が bundled gem になったのに対応して ext/extmk.rb で bundled gem の拡張ライブラリは static link 時にはビルドしないようにしています。

kazu: r55900 2016-08-15 16:42:56 +0900

Windows での CI用の appveyor.yml で利用する libressl のバージョンを 2.3.5 から 2.3.7 に更新しています。

nobu: r55901 2016-08-15 20:31:36 +0900

ruby のオプション --dump=parsetree で NODE_ARRAY 型のノードを dump する時に nd_alen を最初のノードのみ表示するようにしています。 https://twitter.com/shyouhei/status/765139920402784256 で指摘されてた点の修正だと思います(後者での対応)。