ruby-trunk-changes 2020-04-17

今日は一部メソッドの例外メッセージの Encoding 保持対応や、deprecated になっていた定数 NIL/TRUE/FALSE の削除などがありました。

[33aaa2aa15] Nobuyoshi Nakada 2020-04-16 09:47:04 UTC

Kernel#system の第1引数に環境変数を指定する Hash を渡す時に環境変数名として "=" が含まれているものを指定した時のエラーをチェックするテストを追加しています。

[f57e2d7296] Nobuyoshi Nakada 2020-04-16 11:40:19 UTC

Kernel#system や Process.spawn で環境変数を渡す時に環境変数名が不正な時の例外メッセージをその変数名の文字列の Encoding を考慮するよう PRIsVALUE の指示子を使って埋め込むようにしています。

[748c7c7c0b] Nobuyoshi Nakada 2020-04-16 11:36:20 UTC

Process::UID.from_name と Process::GID.from_name というメソッドのテストを追加しています。こんなメソッドあったのか。

[fedc8075fe] Nobuyoshi Nakada 2020-04-16 11:40:53 UTC

そして Process::UID.from_name と Process::GID.from_name で渡された名前が不正な時の例外メッセージを渡された文字列の Encoding を保持するよう PRIsVALUE を使って埋め込むように修正しています。

[e231f8e8a8] Nobuyoshi Nakada 2020-04-16 14:44:24 UTC

テスト用のユーティリティ EnvUtil の invoke_ruby メソッドで子プロセスとの通信に使う pipe の親プロセスで使わない側を close したら nil を代入して、例外発生時などの後始末で再度 close しないようにしています。

[3cca0d1958] Nobuyoshi Nakada 2020-04-16 14:45:02 UTC

テスト用の EnvUtil.assert_separately メソッドで後始末の pipe の close などしている部分を ensure 節にしています。タイムアウト発生時に fd leak していたとのこと。

[99a048155c] git 2020-04-16 15:52:53 UTC

version.h の日付更新

[a0bc3f2a1c] Nobuyoshi Nakada 2020-04-16 15:27:47 UTC

拡張ライブラリ win32ole で精度が異なる代入の警告を抑制するため rb_long2int() していたところを SIZET2NUM() に修正しています。

[c23efbaa99] Sutou Kouhei 2020-04-16 21:23:40 UTC

83240f315a10b42b53c3b62c1fbc428f97912665 で rss を標準添付からはずして bundled gem にした時に消し漏れてた lib/rss.rb を削除しています。

[36353b2728] Yusuke Endoh 2020-04-17 00:20:29 UTC

748c7c7c0b4ce605c0cedf971e94f0076e0e77de で追加した Process::GID.from_name のテストですが、環境によっては実装されてないようなので respond_to? でチェックしていたところ Android では実装はあるものの期待したように動かないようでテストメソッド定義させないように条件に追加しています。

[75a0447c15] Nobuyoshi Nakada 2020-04-16 23:14:38 UTC

a0bc3f2a1c2c98f225612101cb4e1ea1a6813546 の win32ole の警告抑制の再修正。やっぱり long に明示的にキャストしてから rb_long2int() を使うようにしています。

[00d9278387] Nobuyoshi Nakada 2020-04-17 05:07:14 UTC

MJIT 用の precompiled header の更新用のタイムスタンプファイルの依存関係に $(RBCONFIG) を追加しています。 JRuby のために必要とのこと。

[b5132d91c0] Nobuyoshi Nakada 2020-04-14 16:07:50 UTC

rb_readwrite_sys_fail(), rb_readwrite_syserr_fail() の引数 writable を waiting と変更しています。また if 文を switch 文に変更するなどのリファクタリング

[3152977b31] Nobuyoshi Nakada 2020-04-14 16:29:13 UTC

test/unit の並列テスト用のライブラリ部分で結果を送信する _report メソッドで Errno::EPIPE が発生した時に呼び元で rescue してたのですが _report 内で rescue するようにまとめています。

[62554ca978] Nobuyoshi Nakada 2020-04-17 08:35:17 UTC

2.4 から deprecated にしていた定数 NIL, TRUE, FALSE を削除しています。

[5257a53090] Kazuhiro NISHIYAMA 2020-04-17 08:39:42 UTC

62554ca97812b454e78a0a9daf6e962ff7a2f589 で削除した NIL/TRUE/FALSE についての記述を doc/globals.rdoc と doc/syntax/literals.rdoc から削除しています。

[c817868705] Nobuyoshi Nakada 2020-04-17 08:49:50 UTC

NEWS に 62554ca97812b454e78a0a9daf6e962ff7a2f589 の NIL/TRUE/FALSE の削除についてのエントリを追記しています。

[92c8258858] Kazuhiro NISHIYAMA 2020-04-17 08:59:43 UTC

NEWS の ruby.h ヘッダ分割についてのエントリの typo 修正。