ruby-trunk-changes r67415 - r67427

今日は開始点を省略した beginless range の Range リテラルの追加や gc.c の ASAN などのメモリチェックの範囲を広げる変更などがありました。

hsbt: r67415 2019-04-02 20:48:18 +0900

標準添付ライブラリの rubygems を upstream の master に更新しています。

tenderlove: r67416 2019-04-03 04:13:07 +0900

gc.c の heap_page_add_freeobj() heap_add_freepage() heap_add_poolpage() heap_page_resurrect() などなどのリスト操作する関数でその操作部分で一時的に unpoison してそこにはメモリチェックが効くように細かく制御するようにしています。 また gc_verify_heap_pages_() に free list に繋がってる slot のタイプが T_NONE になっているのを確認するチェックを追加しています。

tenderlove: r67417 2019-04-03 04:13:12 +0900

gc.c の internal_object_p() で一時的に unpoison するタイミングを flags を取得する前に移動しています。

svn: r67418 2019-04-03 04:13:13 +0900

version.h の日付更新。

tenderlove: r67419 2019-04-03 06:13:22 +0900

r67407 で misc/lldb_cruby.py の lldb_inspect に追加した T_REGEXP 対応で型の名前を間違えてたのを修正。

tenderlove: r67420 2019-04-03 06:58:59 +0900

gc.c の count_objects() で struct RBasic の flags が表現する T_XXXX のタイプを Symbol として返す部分を type_sym() という独立した関数として切り出すリファクタリング。将来的に compaction で使うつもりとのこと。

tenderlove: r67421 2019-04-03 06:59:04 +0900

gc.c の count_objects() でも一時的に unpoison してチェック有効になるようにしています。またいくつか poison_object() と unpoison_object() の呼び出しの引数に明示的なキャストを追加しています。

mame: r67422 2019-04-03 17:11:41 +0900

endless range に続いて beginless range なる開始点を省略した Range のリテラル記法がサポートされるようになりました。 endless に比べると使いどころどのくらいあるかな、という感じですけどまああったら使うんでしょうね。 [ruby-core:87313] [Feature #14799]

mame: r67423 2019-04-03 17:35:57 +0900

Range#cover? で beginless range も正しくサポートするようにしています。

kazu: r67424 2019-04-03 18:35:26 +0900

r67422 でうっかり Array#[] の引数に Range オブジェクトを渡した時のテストケースの1つが消されてたので復活させています。

nobu: r67425 2019-04-03 19:56:36 +0900

拡張ライブラリ date の Date._parse でタイムゾーン zone に渡した文字列の Encoding や tainted フラグを伝播させるようにしています。

svn: r67426 2019-04-03 19:56:37 +0900

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

k0kubun: r67427 2019-04-03 20:16:47 +0900

azure-pipelines.yml で vs2019 でのビルドで win32/configure.bat や nmake の実行でエラーを無視するようにしています。