ruby-trunk-changes r48765 - r48772

今日は TracePoint のパフォーマンス改善や、RGenGC 向けの最適化で Class/Module を最初から旧世代にするようにする変更などがありました。

ko1: r48765 2014-12-11 04:35:07 +0900

r46419 の TracePoint の修正でパフォーマンスが悪くなってしまっていたそうで、rb_thread_t に local_storage_recursive_hash_for_trace というメンバを追加して再帰チェックの Hash と trace の処理の時に差し替えるようにしているみたいです。 [ruby-core:66282] [Bug #10511]

svn: r48766 2014-12-11 04:35:19 +0900

version.h の日付更新。

marcandre: r48767 2014-12-11 05:38:13 +0900

標準添付ライブラリ prime で Integer#prime? での素数判定でブロックをブロック引数として受け取って call で呼んでいたのを yield を使うようにしています。このほうが高速なので処理が早くなります。 [ruby-core:65580] [Feature #10354]

nobu: r48768 2014-12-11 09:37:58 +0900

String#squeeze! でも終端文字のワイド文字エンコーディング対応をしています。

nobu: r48769 2014-12-11 12:02:36 +0900

process.c で未使用のローカル変数を削除しています。

nobu: r48770 2014-12-11 13:26:30 +0900

test/ruby/test_process.rb の test_execopts_redirect という大きなテストメソッドを分割するリファクタリングをしています。

ko1: r48771 2014-12-11 19:15:30 +0900

世代別 GC (RGenGC)のためのオブジェクトの世代を、Class や Module や ISeq は通常長生きするはずなので最初から age=2 で生成するようにしています。しかし新たなオブジェクトを old 世代で作るようにはできていなかったので、そのための変更も含まれています。

kazu: r48772 2014-12-11 19:54:39 +0900

r48747 の ChangeLog エントリの typo 修正(空白追加)しています。