ruby-trunk-changes 2019-05-09

今日は GC.compact に関連した SEGV 修正や String の shared の変更に追随した不具合修正などがありました。

[c53f87943e] Aaron Patterson 2019-05-08 15:19:59 -0700

gc.c の rgengc_remembered() で obj_info() を呼んでデバッグ出力してましたが obj_info() は GC sweep 中に呼ぶと不正な参照をみてしまって SEGV する恐れがあるので、この呼び出しを省いた rgengc_remembered_sweep() という関数を追加して gc_page_sweep() 内からはこちらを呼ぶように修正しています。

[8b12db6e19] git 2019-05-09 07:26:29 +0900

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

[4ff0911c79] git 2019-05-09 07:26:32 +0900

version.h の日付更新。

[dc405eb737] Aaron Patterson 2019-05-08 15:56:07 -0700

GC.compact 対応で finalizer_table を mark する時に値を pin するため mark_tbl() を使ってましたが、finalizer_table は key も pin して動かせないようにしないといけなかったので、専用の mark_finalizer_tbl() という関数を追加してこれを使うようにしています。ついでに一部関数名の変更。

[10723dd6ce] Nobuyoshi Nakada 2019-05-09 08:54:38 +0900

tool/vcs.rb の GIT の push 時の dry-run オプションの時に -n オプションを追加するのを git push の後に移動しています。

[f1486fea46] NARUSE, Yui 2019-05-09 09:23:44 +0900

ripper のテストに require "stringio" を追加しています。

[4fabb74471] Nobuyoshi Nakada 2019-05-09 10:00:48 +0900

10723dd6cefb84e6a7d69b3bc3c1a74c345e4306 のデバッグ? のため作ったコマンドラインを表示するようにしています。

[d802698d3e] Nobuyoshi Nakada 2019-05-09 10:01:31 +0900

10723dd6cefb84e6a7d69b3bc3c1a74c345e4306 の追加修正で git で push する時に upstream のブランチ名を取得するための処理を追加しています。

[c06ddfee87] Alan Wu 2019-05-09 10:04:19 +0900

3f9562015e651735bfc2fdd14e8f6963b673e22a の String の shared を常に root のバッファを参照するようにした変更で rb_fstring() で dedup するとバッファをコピーするので孫 shared した String オブジェクトが気がつかずに解放されたバッファを参照してしまう可能性があった(コミットログに一応説明があります)のを修正しています。 [ruby-core:92412] [Bug #15792]

[eb84b33c86] Nobuyoshi Nakada 2019-05-09 14:02:01 +0900

tool/vcs.rb の GIT.get_revision でブランチ名がローカルの working copy の refs から得られなかった時に現在の HEAD を含んでるブランチから適当に選ぶようにしています。これ最初のでいいのかな。どういう順序になるんだっけ。

[025206d0dd] Nobuyoshi Nakada 2019-05-09 14:12:03 +0900

tool/vcs.rb の GIT.get_revisions で branch 名が取得できなかった時に :detached: という名前をつけるようにしています。