ruby-trunk-changes r66511 - r66527

今日は rubygems の更新、Transient Heap 導入の影響で Array#[]= で部分配列を書き換える時に稀に rb_bug() で異常終了する可能性があった不具合修正、Time の不具合修正などがありました。

aycabta: r66511 2018-12-23 22:14:28 +0900

標準添付ライブラリ rdoc のバージョンを 6.1.0 に更新。

aycabta: r66512 2018-12-23 22:15:17 +0900

NEWS ファイルに rdoc の更新内容について追記しています。

ko1: r66513 2018-12-23 23:58:41 +0900

rb_ary_splice() で配列オブジェクトの部分配列を書きかえる時に RARRAY_PTR() で取得したポインタを MEMMOVE() に渡していましたが、RB_OBJ_WB_UNPROTECT_FOR() で write barrier の追加と RARRAY_PTR_USE_TRANSIENT() を利用するようにしています。 RARRAY_PTR() は GC を起動する可能性があるため、T_NONE が格納されているバッファが ruby レベルで見えてしまう可能性があったとのこと。えっ RARRAY_PTR() で GC 走るっけ? と疑問でしたが Transient Heap が入った時に transient な配列だったら rb_ary_detransient() が呼ばれてヒープに確保しなおしてからポインタが取り出されるため、そのタイミングで GC が走る可能性が増えてたのでいした。うーん、なるほどー。

ko1: r66514 2018-12-24 00:02:17 +0900

gc_mark_ptr() で T_NONE 型のオブジェクトが渡された時の rb_bug() のメッセージの強化と RGenGC のデバック用チェックの後に移動。

svn: r66515 2018-12-24 00:02:23 +0900

version.h の日付更新。

mrkn: r66516 2018-12-24 03:32:01 +0900

拡張ライブラリ bigdecimal の 1.4.0 をマージ。rdoc に BigDecimal() の exception: キーワード引数の記述追加と不要になってた初期化関数(?)の削除など。

mrkn: r66517 2018-12-24 03:32:03 +0900

NEWS ファイルの bigdecimal の今後のリリース予定についての記述で 1.5.0 を 2.0.0 に変更しています。BigDecimal.new の削除を含むのでメジャーバージョン上げようということみたいです。

mrkn: r66518 2018-12-24 03:54:51 +0900

Enumerator::ArithmeticSequence#sum のテストを追加しています。

nobu: r66519 2018-12-24 09:48:15 +0900

Enumerable#each_with_object や Enumerator#with_object で作った Enumerator の inspect の結果の文字列にメッソド名の末尾が削れてるのと引数の Hash の表示がないというのを修正しています。よく気がつくなぁ。 [ruby-core:90685] [Bug #15455]

nobu: r66520 2018-12-24 10:46:48 +0900

r65025 の変更以降 Time#utc で更新後にタイムゾーンの設定(vtm.zone)が残っていたのをクリアするようにしています。 [ruby-core:90627] [Bug #15439]

nobu: r66521 2018-12-24 10:56:21 +0900

RubyVM::AbstractSyntaxTree::Node#inspect が返す文字列から不要な(?)かっこを削って、文字列連結の呼び出しを減らしています。

ko1: r66522 2018-12-24 11:02:47 +0900

r60964 で deprecated にマークされてさらに r61296 で RUBY_FUNC_EXPORTED が追加されてた rb_frame_method_id_and_class() のこれらの変更を revert しています。rice っていう gem でこの API を使ってて、代替がまだ決まってないからとのこと。 [ruby-core:89782] [Bug #15300]

k0kubun: r66523 2018-12-24 12:48:32 +0900

r65480 で win32ole のテストにリトライつきの assert_match_with_retries という assertion メソッドを追加した時にカウンタをインクリメントし忘れてて無限に繰り返していたのを修正しています。

k0kubun: r66524 2018-12-24 12:50:39 +0900

同じく win32ole のテストで assert_match_with_retries を使っていたところで message_loop というメソッドにインスタンス変数名を指定することで待つという方法があったみたいなのでそれを使うようにしています。

knu: r66525 2018-12-24 17:11:49 +0900

Kernel#raise, Kernel#fail の rdoc 用コメントに exception: キーワード引数について追記しています。

stomar: r66526 2018-12-24 19:52:44 +0900

NEWS ファイルの主に英文法修正。

hsbt: r66527 2018-12-24 20:03:52 +0900

NEWS ファイルの rubygems のバージョンの記述を r66499 で更新した 3.0.1 に追随させています。