ruby-trunk-changes r58986 - r58998

今日は Binding や Dir オブジェクトを WB-protected にする変更などがありました。

nobu: r58986 2017-06-01 21:58:02 +0900

rb_get_path_check_to_string() でも to_path メソッドの呼び出しで未定義の時のデフォルト値を指定できる rb_check_funcall_default() を利用するようにリファクタリング

nobu: r58987 2017-06-01 22:05:54 +0900

file.c の rb_get_path_check() の static を外して rb_require_internal() でファイルパス用のオブジェクトの変換および safe level の考慮にこれを利用するようにしています。

ko1: r58988 2017-06-02 00:12:14 +0900

Binding オブジェクトの構造体メンバのアクセスに Write Barrier を挿入して RGenGC の WB-protected なオブジェクトになるようにしています。

svn: r58989 2017-06-02 00:12:15 +0900

version.h の日付更新。

ko1: r58990 2017-06-02 00:18:51 +0900

Dir オブジェクトも RGenGC の WB-protected なオブジェクトにしています。Dir はこれまで違ったのか。

eregon: r58991 2017-06-02 02:08:47 +0900

mspec の helper メソッド cp でファイルの読み書きのための open の mode に "b" を追加しています。 https://bugs.ruby-lang.org/issues/13570

eregon: r58992 2017-06-02 02:08:59 +0900

File.open のキーワード引数 flags: File::TMPFILE の指定時のテストで確実に空のディレクトリを用意するために中のファイルを消すのではなくて一時ディレクトリを mkdir してから使うように変更しています。

eregon: r58993 2017-06-02 02:25:48 +0900

rubyspec の drb の spec ファイルで空っぽのものがあったので削除しています。

eregon: r58994 2017-06-02 02:26:00 +0900

rubyspec の drb の DRb.stop_service のテストを削除しています。複数プロセスでの並列テストでうまくいかないからってことですかね。

eregon: r58995 2017-06-02 02:26:12 +0900

rubyspec の drb のテストでポート番号を固定の範囲のものを使うようにしていたのを、指定せずに起動して動的に割り当てられたポート番号を使うように改善しています。

nobu: r58996 2017-06-02 12:54:19 +0900

rb_find_file_safe() の SecurityError 発生時のメッセージにパスの文字列を埋め込む時に指示子に PRIsVALUE を使うようにしてエンコーディングを保持するようにしています。

nobu: r58997 2017-06-02 13:10:36 +0900

r58996 の例外メッセージのエンコーディングの変更に対応してテストでチェックする文字列のエンコーディングを変更しています。

nobu: r58998 2017-06-02 13:32:47 +0900

require の SecurityError 例外のテストでファイルの文字列を filesystem encoding に encode するのに失敗した時に ospath_encoding? に encode するようにしています。 LANG=C の時に失敗するそうです。filesystem encoding って LANG の影響を受けるんだっけ?