ruby-trunk-changes 2023-03-16

今日は YJIT の実装のリファクタリングや小さな最適化、いくつかのテストの修正などがありました。

[77c8daa2d4] Aaron Patterson 2023-03-15 14:55:07 UTC

YJIT の Rust 実装の JITState の ec を必須にする変更。 https://github.com/ruby/ruby/pull/7520

[f613c18912] Takashi Kokubun 2023-03-15 16:53:46 UTC

70ba3102129dbaf6c943d1ed042103e0238842f4 の Primitive.attribute! メソッドの引数に :no_gc という属性を追加した変更で Kernel#class メソッドの実装に no_gc 属性を追加していたのをやめています。 Cirrus CI でのエラーの対応のためみたいです。 rb_obj_class() の呼び出しをするだけなので実際 GC 起動することはなさそうですが。

[de174681f7] Alan Wu 2023-03-15 17:43:49 UTC

YJIT の実装で GC のための(この GC は YJIT のコード領域の GC じゃなくて ruby 本体のほうの GC かな、たぶん) mark 処理時に VM のロック取得していることを確認する assertion を追加しています。

[5791aa6263] Matt Valentine-House 2023-03-07 18:13:46 UTC

関数マクロ RB_GC_SAVE_MACHINE_CONTEXT() の定義を internal/gc.h から vm_core.h に移動しています。

[60b8c7d9fd] Matt Valentine-House 2023-03-07 18:41:04 UTC

5791aa6263f730e3b2c8d4a4fb7a054539cf6135 で定義を移動した RB_GC_SAVE_MACHINE_CONTEXT() を RB_VM_SAVE_MACHINE_CONTEXT() と改名しています。

[4ae9c34a4e] Matt Valentine-House 2023-03-08 10:45:59 UTC

5791aa6263f730e3b2c8d4a4fb7a054539cf6135 で移動して 60b8c7d9fd2e2cb82dae7189a66335b3bec9005f で改名した関数マクロ RB_VM_SAVE_MACHINE_CONTEXT() の定義をさらに internal/thread.h に移動しています。

[9a735c776b] Maxime Chevalier-Boisvert 2023-03-15 21:55:29 UTC

YJIT の Rust 実装で構造体メンバー struct JITState.insn_idx の型の整数の幅を 32bit から 16bit に減らしています。 https://github.com/ruby/ruby/pull/7534

[ca10274fe3] Alan Wu 2023-03-15 23:07:49 UTC

YJIT の Rust 実装のテストの追加。

[6183180603] Takashi Kokubun 2023-03-15 23:27:36 UTC

YJIT の Rust 実装の中間表現の load_into という命令? の実装で不要な時に命令を省略する最適化を追加しているようです。 https://github.com/ruby/ruby/pull/7537

[760b8b7d24] Hiroshi SHIBATA 2023-03-15 09:06:15 UTC

rubygems のインデントを変更しています。 rubycop の指定を満たすためみたいです。

[f3b129241c] Hiroshi SHIBATA 2023-03-15 09:07:35 UTC

bundler で演算子の両側に空白を追加する変更。これも rubocop の指定を満たすためみたいです。

[a6c447d4c5] "dependabot[bot]" 2023-03-16 03:00:26 UTC

GitHub Actions の workflow で利用している github/codeql-action アクションのバージョンを更新しています。

[0b303c6830] Nobuyoshi Nakada 2023-03-15 11:34:21 UTC

拡張ライブラリ openssl のテストでメッセージが少し変化してしまったために失敗するようになったテストの修正。リンクする OpenSSL のバージョンの更新で変化してしまったようです。 https://github.com/ruby/openssl/issues/606

[b3a271665b] Matt Valentine-House 2023-02-15 16:10:15 UTC

USE_RINCGC というマクロの指定を参照しているところを削除しています。 Incremental GC の指定みたいですけどもう 0 に指定するとビルドできない? みたいなので不要になっているということみたいです。 [ruby-core:112446] [Feature #19442]

[90d3bbb52b] Matt Valentine-House 2023-02-15 16:33:50 UTC

b3a271665b6d45fe21e775e1c523a040caa509a9 の続きで GC_ENABLE_INCREMENTAL_MARK というマクロも削除して常に有効になるようにしています。 [ruby-core:112446] [Feature #19442]

[5cffa69c1b] Kazuhiro NISHIYAMA 2023-03-16 09:37:19 UTC

String クラスの rdoc 用コメントのマークアップというかエスケープの修正。

[cae4342dd5] Nobuyoshi Nakada 2023-03-16 08:19:01 UTC

7ce4b716bdb5bcfc8b30ffcd034ce7aded1f72b9 で追加した正規表現のマッチが文字列に対して線形の時間で処理できることを確認するテストとそこで使うために追加した assert_linear_performance メソッドで引数の渡しかたを変更しています。