ruby-trunk-changes r58959 - r58969

今日は Enumerable#sort_by, #min_by, #max_by などのメソッドの最適化などがありました。

nobu: r58959 2017-05-30 00:34:45 +0900

Process.setpriority のテストを子プロセスを起動してプロセスグループも分けてその中で実行するようにしています。 というか今までやってなかったというのが驚き。 [ruby-core:81448] [Bug #13609]

svn: r58960 2017-05-30 00:34:46 +0900

version.h の日付更新。

eregon: r58961 2017-05-30 02:56:34 +0900

rubyspec の Process.setpriority のテスト対象のプラットフォームの条件を広げています。

eregon: r58962 2017-05-30 02:56:46 +0900

r58959 で変更してた rubyspec での Process.setpriority のテストで子プロセスで実行するスクリプトを fixture として切り出して共有するようにしています。

svn: r58963 2017-05-30 02:56:47 +0900

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

watson1978: r58964 2017-05-30 11:57:33 +0900

Range#min と Range#max でオブジェクトの比較に即値で比較できるものをショートカットするマクロ OPTIMIZED_CMP() というのを利用するようにしてメソッド呼び出しを抑制する最適化を行なっています。 https://github.com/ruby/ruby/pull/1585 [ruby-core:80713] [Bug #13443]

duerst: r58965 2017-05-30 14:43:41 +0900

r58954 の enc/utf_8.c での UTF-8 の1文字のバイト数上限を 6 から 4 への変更のリトライ。 [ruby-core:81342] [Bug #13590]

naruse: r58966 2017-05-30 15:50:35 +0900

rubyspec の拡張ライブラリで qsort(3) のコールバック関数内から rb_yield() を呼ぶような時のテストが Solaris 10 x86 版で SEGV するそうで、このプラットフォームでこのテストを除外するようにしています。

ko1: r58967 2017-05-30 16:05:58 +0900

vm_core.h の rb_iseq_new() などの関数のプロトタイプ宣言で仮引数名を明記するようにスタイルを修正しています。

watson1978: r58968 2017-05-30 18:00:56 +0900

Enumerable#sort_by, #min_by, #max_by などのメソッドでオブジェクトの比較に OPTIMIZED_CMP() マクロを使うようにしてメソッド呼び出しが不要な場合はショートカットするようにする最適化。 https://github.com/ruby/ruby/pull/1584 [ruby-core:80689] [Bug #13437]

nobu: r58969 2017-05-30 20:59:26 +0900

コマンドラインオプション -r で存在しないファイルを指定した時のエラーメッセージのテストで ruby-runner が $0 を置き換えるようにしたので、起動コマンドに EnvUtil.rubybin を使っていたのを RbConfig::CONFIG から直接インストール先の ruby のファイル名を作ってこれでチェックするようにしています。 なるほど r58950 は install してなくても本来のファイルパスになるようにしてたのか…と思って見返したけどやっぱり basename にするようになっているような気がするので r58950 は関係ないかも。