ruby-trunk-changes r63445 - r63453

今日は URI::Generic.use_proxy? の no_proxy の指定の拡張や Range#=== が内部的に cover? も利用するようにする仕様変更などがありました。

stomar: r63445 2018-05-17 03:55:28 +0900

標準添付ライブラリ optparse の rdoc 用コメントでコマンドラインのサンプルの shell のプロンプトを簡素なものにしています。

svn: r63446 2018-05-17 03:55:29 +0900

version.h の日付更新。

normal: r63447 2018-05-17 05:39:30 +0900

gc.c の struct heap_page の linked list の実装を ccan/list を利用するようにしています。 [ruby-core:87067] [Misc #14762]

normal: r63448 2018-05-17 06:54:42 +0900

thread.c のマクロ GVL_UNLOCK_BEGIN()/GVL_UNLOCK_END() や BLOCKING_REGION() が導入するブロックで rb_thread_t を変数に格納するのをやめてマクロの引数で指定するようにしています。マシンスタックの消費を抑えるためみたいですね。

normal: r63449 2018-05-17 12:48:27 +0900

vm_trace.c の enum 定数 PJRR_SUCESS → PJRR_SUCCESS に変更(typo 修正)。

normal: r63450 2018-05-17 12:48:32 +0900

構造体 rb_postponed_job_t の flags メンバーを削除しています。 reserved ってコメントついてるけどいいのかな。 5年も reserved されっぱなしだらかもういいやろ、ということみたいですけど。まあ確かに公開されてない構造体だし必要なら追加すればいいですね。 [ruby-core:87052] [Misc #14764]

normal: r63451 2018-05-17 13:20:33 +0900

rb_vm_t のメンバー postponed_job_buffer を独自の型 rb_postponed_job_t の配列で持ってたのを st_table を利用するように変更しています。

naruse: r63452 2018-05-17 16:40:01 +0900

標準添付ライブラリ uriURI::Generic.use_proxy? で no_proxy のドメインの先頭を "." ではじめてサブドメインにマッチさせることもできるようにしています。 https://github.com/ruby/ruby/pull/1748 [ruby-core:84789] [Bug #14345]

nobu: r63453 2018-05-17 19:46:21 +0900

Range#=== は Range#include? メソッドでチェックしていたのですが、rb_funcall() で実際にメソッド呼び出しはやめて range_include_internal() で include? 相当のチェックをしてみて、include? で判定不能だった時には cover? 相当の処理で判定するようにしています。 Range#include? は始点が整数に変換可能か、文字列かでないと処理できないのでこれ以外の要素による Range の時には <=> メソッドの大小関係のみで判定できる cover? のほうがより汎用的に使えるということのようです。 [ruby-core:85918] [Feature #14575]