ruby-trunk-changes 2023-03-22

今日は主に YJIT の不具合修正と rubygems の古い ruby 対応のコード削除などがありました。

[9b85ff01a1] Nobuyoshi Nakada 2023-03-21 09:59:29 UTC

test/ruby/test_syntax.rb でヒアドキュメントの <<- の結果を gsub で先頭の空白を除去していたところを <<~ によるヒアドキュメントを使うように書き換えています。 <<~ が導入されたのいつからだったっけな。2.3 かららしいのでもう今サポートされているバージョンでは常に使えますね。

[f67f0d7268] Phillip Hellewell 2023-03-21 14:48:25 UTC

標準添付ライブラリ reline の Reline::ANSI のキーバインディングに PageUp と PageDown の対応を追加しているようです。

[30e7561d1d] Peter Zhu 2023-03-21 14:51:35 UTC

5d0a1ffafa61da04dbda38a5cb5565bcb8032a78 の YJIT での rest 引数とブロック引数を持つメソッドの呼び出しサポート追加を revert しています。ベンチマークでエラーが発生したとのこと。 https://github.com/ruby/ruby/pull/7557

[f62fa51283] Nobuyoshi Nakada 2023-03-21 10:00:18 UTC

標準添付ライブラリ erb の rdoc 用コメント内のサンプルコードで <<- によるヒアドキュメントを gsub で行頭の空白除去していたのを <<~ のヒアドキュメントを利用するように書き換えています。

[5de26bc031] Jimmy Miller 2023-03-21 16:57:26 UTC

YJIT で通常の引数に配列を splat して渡す呼びかたをする時の処理の修正。 https://github.com/ruby/ruby/pull/7575

[aa54082d70] Alan Wu 2023-03-21 18:24:17 UTC

YJIT でコンパイルをサポートする ISeq の長さのチェックに不具合があって異常終了する可能性があったのを修正しているようです。 https://github.com/ruby/ruby/pull/7576

[08eaf7c5fa] Alan Wu 2023-03-21 22:16:33 UTC

YJIT のテストで子プロセスを起動して標準入出力を pipe で繋いで受け取る処理で pipe のバッファが詰まってしまう場合があったので pipe からの読み取り用に Thread を立てるようにしています。あるあるですね。

[65a725633b] "dependabot[bot]" 2023-03-20 16:00:34 UTC

rubygems の Rust 製拡張ライブラリのテストのためのプロジェクトの rb-sys というパッケージのバージョンを更新しています。

[38946209a7] Takashi Kokubun 2023-03-21 07:12:34 UTC

RJIT の JIT コンパイルをあきらめるメソッドの呼びかたのカウンタをさらに細かく場合分けしています。

[7947920ee7] Takashi Kokubun 2023-03-22 05:12:43 UTC

RJIT で CALLER_SETUP_ARG() マクロの更新に追随するための変更。

[cb45809454] Takashi Kokubun 2023-03-22 05:28:36 UTC

RJIT 用の C binding のコードを再生成しています。

[8d1109c03b] Hiroshi SHIBATA 2023-03-22 07:10:06 UTC

rubyspec の File#utime のテストが Amazon Linux 2023 で失敗してたようなので許容する year の結果に新しい定数を追加しています。

[43d20596b8] Hiroshi SHIBATA 2023-03-22 07:32:23 UTC

メインスレッド以外で Kernel#exit した時のテストで子プロセス終了を待つタイムアウトFreeBSD で少しのばしています。

[464a264cd4] Justin Searls 2023-03-20 12:52:32 UTC

bundler の bundle gem で生成する bin/console のコメントアウトされている pry を利用したコードを削除しています。

[8c00b130a4] Hiroshi SHIBATA 2023-03-22 09:07:40 UTC

43d20596b8fefadc309348448352bf13615129c6 の再修正。 FreeBSD で延ばすのが子プロセスでメインスレッドが sleep する時間も延ばしていたので許容する待ち時間だけ倍に延ばすようにしています。あれ、メインスレッドが sleep してたら終了が延びるわけではないはずだけど。 FreeBSD だとうまく終了しないのかな。

[6cc8eb4daa] Nobuyoshi Nakada 2023-03-22 09:42:53 UTC

file.c の rb_stat_wr() や rb_stat_ww() といった関数が S_IROTH や S_IWOTH という定数マクロが未定義の時に return 文のない関数になってしまっていたのを修正しています。

[09bda4ceb5] Nobuyoshi Nakada 2023-03-22 08:58:49 UTC

default gems で利用する assert_linear_performance という計算量がデータサイズに対して線形になってることを確認する assertion メソッドでタイムアウト時間を計算する時に初期値を考慮するようにしています。

[92f78b0e0b] Hiroshi SHIBATA 2023-03-16 06:04:41 UTC

rubygems のテストのヘルパーメソッドで RUBY_PATCHLEVEL 定数を Object#remove_const で削除するのを defined? でチェックしてからしていたのをやめています。これはなぜだろう。

[ea1dcb3e23] Hiroshi SHIBATA 2023-03-16 06:05:09 UTC

92f78b0e0b4bcb9b8768fe61d4a18ddae254eead と同じく rubygems のヘルパーメソッドで定数 RUBY_PATCHLEVEL を削除するのに defined? でチェックするのを削除しています。サポートされているバージョンでは常に定義されているから不要なチェックを省くという意味かな。二重に呼んだ時のための guard かと思ったけどそうではなさそう。

[3dc4bc313f] Hiroshi SHIBATA 2023-03-16 06:09:24 UTC

rubyegms のテストなどで RUBY_REVISION 定数を defined? で存在チェックしていたのをやめています。

[3725850297] Hiroshi SHIBATA 2023-03-16 07:38:44 UTC

rubygems のテストのヘルパーメソッドで定数 RUBY_ENGINE_VERSION を defined? で存在チェックしていたのももう不要として削除しています。

[1697869500] Hiroshi SHIBATA 2023-03-16 08:11:05 UTC

rubygems のテストで定数 RUBY_REVISION を削除して実行するテストがあって 3dc4bc313fc7b1aa731b473ac6a7634000b71e9c の変更で通らなくなるので削除しています。

[aa5d195712] Hiroshi SHIBATA 2023-03-18 01:26:01 UTC

rubygems のテストでもうひとつ不要な defined? を削除しています。