ruby-trunk-changes 2022-11-11

今日は主に Array#pack の不具合修正、インスタンス変数管理の Object Shapes の実装の変更や rubygems/bundler の更新などがありました。

[68bd1d6855] Peter Zhu 2022-11-10 14:07:20 UTC

b7e8876704648cee6866591ac1aca7a54faff742 で rb_random_interface_t の変更のためにテスト用の拡張ライブラリに追加した RB_RANDOM_DEFINE_INIT_INT32_FUNC の呼び出しにセミコロンがついていたのがビルドエラーになってたみたいなので修正しています。

[199b59f065] Jemma Issroff 2022-11-09 22:04:35 UTC

Array#pack のキーワード引数 buffer に共有文字列を渡すと共有解除せずに書き込んでしまう可能性があった不具合を修正しています。 [ruby-core:110674] [Bug #19116]

[9986697b62] Jemma Issroff 2022-11-08 20:35:31 UTC

IO::Buffer にも共有文字列を IO::Buffer.for に渡した時にその書き込みが別の文字列オブジェクトにも影響してしまうという不具合があるらしくて、テストで 32 bit 環境で失敗することがあるものを skip するようにしています。 [ruby-core:110514] [Bug #19084]

[5246f4027e] Jemma Issroff 2022-11-08 20:35:31 UTC

インスタンス変数の管理の Object Shapes の実装の変更で rb_shape_t 構造体のメンバーに capacity と size_pool_index を追加して Variable Width Allocation の slot サイズの違う heap のオブジェクトを別の Shape として扱うようにしている? みたいです。

[c726c48a3d] Jemma Issroff 2022-11-08 19:09:43 UTC

5246f4027ec574e77809845e1b1f7822cc2a5cef の変更で struct RObject の メンバーが不要になったそうで削除しています。かわりに rb_shape_t::capacity を利用しています。

[c771d83593] Alan Wu 2022-11-10 16:30:54 UTC

configure の --with-static-linked-ext オプションの処理の位置を前のほうに移動して macOS の --bundle_loader オプション利用チェックの前に EXTSTATIC 変数を設定しておくようにしています。

[bab8051d2d] Nobuyoshi Nakada 2022-11-09 10:36:37 UTC

b7e8876704648cee6866591ac1aca7a54faff742 の拡張ライブラリからの乱数生成器利用のためのインターフェースの変更について NEWS に追記しています。 [ruby-core:110584] [Bug #19100]

[0de3bc92b4] Takashi Kokubun 2022-11-10 17:31:11 UTC

irb の組み込みコマンドのエイリアスにデフォルトで $ と @ をそれぞれ show_source と whereami の別名として登録しておくようにしています。

[8b3347950e] Jimmy Miller 2022-11-10 17:56:22 UTC

YJIT 用のオプション --yjit-stats はデフォルトでは利用できないようにビルドされるようになっていたみたいで、常に利用可能なようにしています。 https://github.com/ruby/ruby/pull/6694

[354791c248] Takashi Kokubun 2022-11-10 18:00:15 UTC

8b3347950e6344474430ed08f5fa19f613883660 で Hash#has_key? を利用していたところを #key? を利用するようにリファクタリング

[7ee1cacb84] Jemma Issroff 2022-11-10 16:36:24 UTC

Object Shapes の実装で rb_shape_get_parent() という関数を切り出して再利用するリファクタリング

[d905632851] Takashi Kokubun 2022-11-10 21:16:25 UTC

configure のオプションに --enable-yjit=stats が渡された時に YJIT_STATS マクロを 1 に定義するようにしています。 https://github.com/ruby/ruby/pull/6710

[2b8191bdad] Takashi Kokubun 2022-11-10 22:12:38 UTC

TracePoint を利用する時に VM 命令が trace 有効版に変化するので YJIT のコンパイル済みコードを破棄する処理が過剰に保守的に判定されていたので必要な時だけ行なわれるように条件を絞っています。 https://github.com/ruby/ruby/pull/6695

[51d161980a] "Thomas E. Enebo" 2022-11-10 19:37:57 UTC

標準添付ライブラリ racc のテストで JRuby でのテストのための racc コマンド名の設定の fallback を追加しています。

[06e17d7659] Yusuke Endoh 2022-11-10 22:41:08 UTC

正規表現のテストのタイムアウトに EnvUtil.apply_timeout_scale を使うのを EnvUtils.assert_separately で起動した子プロセス内で実行するのではなく親で決定してからその値を埋め込むようにしています。環境変数が伝播しない場合にスケーリングがうまくいかないからかな?

[b5f809c496] Yusuke Endoh 2022-10-28 16:19:36 UTC

rubygems環境変数 BUNDLER_SETUP が設定されていたらそれを require するようにしています。そして bundle exec でコマンド実行する時に環境変数 BUNDLER_SETUP に bundler/setup を設定しています。 なんらかの gem のロード前に bundler のセットアップをしておくようにするためみたいです。 [ruby-core:110529] [Feature #19089]

[8fa83fa0b2] Takashi Kokubun 2022-11-10 22:55:11 UTC

irb の組み込みコマンド irb_ls の -g/-G/--grep オプションに対応しています。キーワード引数 grepマッピングするようにしています。

[4c554096bf] Jun Aruga 2022-11-10 12:24:27 UTC

wasm/README.md に Wasm 向けにビルドした ruby は Wasm のランタイム環境がないと実行できないよというのを追記しています。

[adfbee85e0] Yusuke Endoh 2022-11-11 00:05:51 UTC

Regexp.timeout のテストで浮動小数点数の誤差で失敗することがあったので assert_in_delta を利用して小さな誤差は許容するようにしています。

[ceeefb5870] Jason Karns 2022-10-28 19:30:21 UTC

rubygems のテストで GitHubリポジトリから clone するプロトコルを git から https に変更しています。

[c7d043065c] Josef Šimánek 2022-09-11 03:40:55 UTC

gem コマンドの実行時に rubygems 自体に新しいバージョンがあったらアップデートを促すメッセージを出力するようにしているようです。

[7ce0f81fbb] Josef Šimánek 2022-10-29 00:47:14 UTC

c7d043065c058f20ce30c61bb3ce127cb15cc0a8rubygems の更新チェックの最終チェック時のタイムスタンプを保存するためのファイルを環境変数 XDG_STATE_HOME によって変更できるようにしています。

[28611be6ee] Hiroshi SHIBATA 2022-11-11 06:05:59 UTC

rubygems と bundler を upstgream の master からマージしています。