ruby-trunk-changes r43559 - r43565

今日は set_trace_func のフック内で無引数の raise を実行した時の不具合修正や GC のパラメータ再調整などがありました。

nobu:r43559 2013-11-07 05:37:12 +0900

.gdbinit の rp コマンドで RGenGC 用のフラグ名が r43527 で改名されたのに対応しています。

svn:r43560 2013-11-07 05:37:17 +0900

version.h の日付更新。

nobu:r43561 2013-11-07 09:39:56 +0900

set_trace_func のフックに外側の rb_thread_t::errinfo が外に伝播していて、引数なしの raise をフック内で実行した時に内部的なオブジェクトが例外として投げられてしまって SEGV を起こしていた不具合を修正しています。 これは 2.0.0 でも起きないかチェックしたほうがよさそうですねぇ。 [ruby-dev:47793] [Bug #9088]
→ SEGV はおきませんでしたが無限ループ? に陥いっているみたいな状態になったので何かしら対処は必要そうでした。

glass:r43562 2013-11-07 10:37:34 +0900

Array#sample の実装で rb_ary_subseq() で共有する配列を作ってすぐに rb_ary_modify() していてあまり共有していた意味がなかったので rb_ary_dup() で複製を作るようにしています。

glass:r43563 2013-11-07 11:08:36 +0900

Array#shuffle! でも RARRAY_PTR() を使っていたところを RARRAY_PTR_USE() を使って shady になるのを防いでいます。

kazu:r43564 2013-11-07 15:51:09 +0900

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

ko1:r43565 2013-11-07 19:45:01 +0900

再度 malloc() 由来の GC の起動を制御するパラメータの調整方法の変更と初期パラメータの変更をしています。GC_MALLOC_LIMIT_GROWTH_FACTOR を 1.0 から 1.4 に増やして今度は GC 回数を減らす方向に調整しているようです。