ruby-trunk-changes r66655 - r66662

今日は Refinements とブロック引数に &つき Symbol を渡した時の不具合修正や RubyVM.resolve_feature_path の機能強化などがありました。

eregon: r66655 2018-12-31 02:47:56 +0900

r66650 を revert しています。Solaris でエラーになる Process.clock_gettime の CLOCK_XXX をテスト対象かは外してましたが、Linux などではテストしたいので、とのこと。

svn: r66656 2018-12-31 02:47:57 +0900

version.h の日付更新。

eregon: r66657 2018-12-31 02:48:11 +0900

で r66655 の続きで rubyspec の Process.clock_gettime のテストで solaris をまた除外しています。てっきり環境に応じて除外する CLOCK_XXX の種類を細かく制御するのかなと思ったらそうじゃないんですね。

nobu: r66658 2018-12-31 06:42:52 +0900

Refinements とブロック引数に & で symbol を渡す記法の組み合わせで、method entry がみつからない時に継承ツリーを辿るようにしています。 [ruby-dev:50741] [Bug #15489]

glass: r66659 2018-12-31 09:46:07 +0900

標準添付ライブラリ net/http, net/ftp, net/pop, net/smtp などでソケット接続時に Timeout.timeout を使っていたのを、Socket.tcp の connect_timeout: キーワード引数を利用してタイムアウト検出するようにリファクタリングしています。

glass: r66660 2018-12-31 10:09:30 +0900

と思ったら r66659 を revert しています。 getaddrinfo(3) が timeout をサポートしていないため。

nobu: r66661 2018-12-31 10:14:51 +0900

RubyVM.resolve_feature_path の実装で search_required() から呼び出す rb_feature_p() を関数ポインタとして引数に受け取るようにして、既に require 済みで $LOADED_FEATURES に含まれているファイルに対しても解決可能なようにしているようです。この rb_feature_p() っていう関数は load.c に元々 static 関数として定義されているので、他の呼び元ではその関数を渡すようになっています。

svn: r66662 2018-12-31 10:14:52 +0900

r66661 のインデントのタブを空白に展開。