ruby-trunk-changes 2021-10-28

今日は主に YJIT の newhash 命令のオペランドが 1以上の時の対応追加や --yjit-stats オプションを -v を一緒に使った時に機能しなかった不具合の修正などがありました。

[a6104b392a] John Hawthorn 2021-10-27 14:55:43 UTC

YJIT の VM 命令 newhash の対応でオペランドの Hash のサイズ指定があった( 1以上だった)時に JIT 対応していなかったのを JIT コンパイルするように対応を追加しています。 https://github.com/ruby/ruby/pull/5029

[367884c659] Nobuyoshi Nakada 2021-10-27 14:57:08 UTC

YJIT のテスト用? のダミーのソースコード misc/yjit_asm_tests.c で関数定義のスタイルの修正や rb_bug() の可変長引数の対応の修正をしています。 https://github.com/ruby/ruby/pull/5033

[0d9913e52f] Alan Wu 2021-10-26 00:22:54 UTC

test/ruby/test_yjit.rb のインデント修正のみ。

[6875d6d1fa] Alan Wu 2021-10-26 00:28:21 UTC

ruby --version オプションをつけた時のテストで複数行の出力があった場合を考慮して 1行目だけチェックするように修正しています。

[fdbae38546] Alan Wu 2021-10-26 19:15:46 UTC

コマンドラインオプション --yjit-stats をつけた時の統計情報の出力処理を Kernel#at_exit を利用して登録していたのを C の rb_yjit_init() 内で実行していたのを yjit.rb の ruby 実装から登録するようにしています。なにが違うのかなと思いましたが rb_yjit_init() の時点ではまだ登録すべき YJIT._print_stats メソッドが ruby 版の評価が終わってないので -v オプションと一緒に使った時にうまく呼べてなかったようです。 rb_funcall() で呼んでるから遅延して評価されるのでは、と思ったのですが -v オプションですぐ終了する時は ruby 版実装が読み込まれないみたいで、その場合はメソッド定義がされないので問題があったようです。なるほど。

[30942c19c0] git 2021-10-27 17:00:25 UTC

version.h の日付更新

[b74bf8dd88] Nobuyoshi Nakada 2021-10-27 23:58:59 UTC

misc/lldb_cruby.py を 46b66eb9e8e6de2d5750591e532310e8f8599d90 での struct RString の構造体の宣言の変更に追随するように修正しています。

[da22e43ce0] Kazuhiro NISHIYAMA 2021-10-27 23:23:18 UTC

gc.c の size_pool_slot_size() の引数の宣言に unsigned を追加しています。警告抑制のため。

[d844459377] Kazuhiro NISHIYAMA 2021-10-28 00:12:14 UTC

gc.c の size_pool_slot_size() でもうひとつ GC_ASSERT() の引数内で明示的なキャストを追加しています。やはり警告抑制のため。

[179aa26f4f] Nobuyoshi Nakada 2021-10-28 04:14:31 UTC

defs/gmake.mk の pull-github ターゲットで git worktree prune というサブコマンドの実行を追加して余計な変更が混ざらないようにしているようです。

[efcf18f13e] Yusuke Endoh 2021-10-28 04:45:37 UTC

gems/bundled_gems の typeprof を 0.20.2 に更新しています。

[77544caaf4] Koichi Sasada 2021-10-28 05:31:02 UTC

common.mk に make runirb というターゲットを追加しています。その名のとおり irb を起動するみたいですが RUBY_ON_BUG を指定して異常終了時に gdb を起動するようにしているようです。

[1d666ed50f] Nobuyoshi Nakada 2021-10-28 03:06:34 UTC

Time.new のうるう日とその翌日(3/1)を前後するような時刻と offset の組み合わせで Time を作成した時の調整の判定時に Integer(Fixnum)の VALUE を int を受け取る関数に渡してしまっていたため誤判定していたのを修正しています。 [ruby-core:105832] [Bug #18274]

[e76e1d3ce4] Nobuyoshi Nakada 2021-10-28 08:42:36 UTC

tool/downloader.rb で Last-Modified ヘッダを Time.httpdate でパースするのをリトライのループ内で実施して、不正なフォーマットで返ってきた場合をリトライ対象にするようにしています。リトライで直るようなものかなと思いましたが zlib.net がたまに不正なフォーマットで返してくることがあるみたいです。

[d51ba1e1be] osyo-manga 2021-10-28 09:21:27 UTC

NEWS に Enumerable#each_cons と Enumerable#each_slice の戻り値が receiver そのものを返すようになった変更について追記しています。 https://github.com/ruby/ruby/pull/1509