ruby-trunk-changes r58926 - r58942

今日は Process.times で getrusage() を使った精度の改善などがありました。

k0kubun: r58926 2017-05-27 22:54:09 +0900

bootstraptest/test_insns.rb の各 VM 命令が出現するスクリプトコンパイルするテストで toregexp の名前が間違っていたのを修正しています。

naruse: r58927 2017-05-28 02:04:31 +0900

misc/lldb_cruby.py に lldb 用の rubyデバッグ用コマンド実装を追加しています。ついに lldb 向けの .gdbinit 的なものが。

svn: r58928 2017-05-28 02:04:32 +0900

version.h の日付更新。

svn: r58929 2017-05-28 02:04:32 +0900

r58927 で新規追加されたファイルの svn property 設定。

eregon: r58930 2017-05-28 06:54:38 +0900

r58918 で mspec で並列実行時のオプションをチェックしていたテストを削除している? みたいです。その他 upstream の変更をマージしています。

eregon: r58931 2017-05-28 06:55:02 +0900

rubyspec に upstream の変更を merge しています。

svn: r58932 2017-05-28 06:55:03 +0900

r58931 の行末の空白除去。

svn: r58933 2017-05-28 06:55:03 +0900

r58931 で新規追加されたファイルの svn property 設定。

normal: r58934 2017-05-28 10:43:38 +0900

r58924 で追加した assert_cpu_usage_low でデフォルトの許容する CPU 利用率を引き上げています。 やっぱり false positive が多かったみたいです。 [ruby-core:81427]

k0kubun: r58935 2017-05-28 10:48:11 +0900

Process.times で可能なら getrusage() を利用するようにしてより精度のよい計測結果を返すようにしています。 [ruby-dev:49471] [Feature #11952]

normal: r58936 2017-05-28 14:39:29 +0900

r58924 で追加した IO.copy_stream のテストで assert_cpu_usage_low にわたす CPU 使用率のしきい値を 0.11 に設定しています。 0.1 秒間 sleep していますが、カーネルによってスケジューリングの時間の粒度は異なり、最悪で 100Hz つまり 10ms 粒度のでカーネルが存在するので(2.2 か 2.4 あたりの古い Linux Kernel は確かそうでしたね) 10% よりは多めにしておかないといけなかったとのこと。

nobu: r58937 2017-05-28 18:49:29 +0900

構造体 struct ruby_cmdline_options のメンバーの順序を整理して構造体サイズを小さくしています。

nobu: r58938 2017-05-28 18:49:30 +0900

ruby.c の load_file() に引数を追加して open_load_file() で開いた IO オブジェクトを引数で渡すようにしています。また open_load_file() で引数の文字列を path encoding でエンコードしなおすようにしています。将来的に IO オブジェクトを使いまわすことを考えているみたいです。

eregon: r58939 2017-05-28 20:30:42 +0900

rubyspec の upstream の変更を merge しています。

eregon: r58940 2017-05-28 20:30:55 +0900

mspec と rubyspec の最新版をとってきてマージするためのツールを tool/pull-latest-mspec-spec に追加しています。

svn: r58941 2017-05-28 20:30:57 +0900

r58940 で新規追加したファイルの svn property 設定。

eregon: r58942 2017-05-28 21:02:08 +0900

というわけでさらに rubyspec に upstream からの変更を merge しています。