ruby-trunk-changes 2023-10-20

今日は主に YJIT を動的に有効にする RubyVM::YJIT.enable メソッドの追加や AST の NODE 用構造体のリファクタリングやドキュメントの整理などがありました。

[9d9aa63e82] Alan Wu 2023-10-18 23:36:42 UTC

YJIT の Rust 実装で未使用のコードを削除しています。

[6beb09c2c9] Takashi Kokubun 2023-10-19 17:54:35 UTC

RubyVM::YJIT.enable メソッドを新規追加して YJIT を動的に有効化できるようにしています。 https://github.com/ruby/ruby/pull/8705

[9047fe5ea4] Alan Wu 2023-10-19 17:41:38 UTC

YJIT のテストで統計情報の side exit のカウンタの確認をするテストでエラー時にカウンタ情報を表示するようにしています。

[9194f489c9] Alan Wu 2023-10-19 17:48:27 UTC

YJIT のテストで起動する子プロセスに --yjit-stats=quiet オプションを渡すようにしています。

[3e65115cef] Maxime Chevalier-Boisvert 2023-10-19 19:29:31 UTC

YJIT 用のコマンドラインオプションから --yjit-greedy-versioning というオプションを削除しています。 https://github.com/ruby/ruby/pull/8713

[af222d4db2] Samuel Giddins 2023-10-19 16:22:34 UTC

bundler に vendoring されている thor のバージョンを更新しています。

[205cbc09d3] Samuel Giddins 2023-10-19 18:00:47 UTC

bundler で Gem::RemoteFetcher のインスタンスを得るメソッドで毎回新規にインスタンスを作らず Gem::RemoteFetcher.fetcher を使うようにしています。

[5bbb6fd6c3] Nobuyoshi Nakada 2023-10-19 04:35:49 UTC

rubyparser.h の構造体 rubyparser.h のフォーマット文字列を受付ける関数への関数ポインタに RBIMPL_PRINTF_FORMAT でフォーマット文字列の引数を受け付けることを指定する attr をつけるようにしています。警告抑制のため。

[3467355450] Herwin 2023-10-19 22:18:03 UTC

MatchData#deconstruct_keys の rdoc 用コメントの typo 修正。

[47f950c89a] Takashi Kokubun 2023-10-19 22:47:19 UTC

NEWS に 6beb09c2c99a2575027bdbc60a6fbb099416f74d で追加した RubyVM::YJIT.enable メソッドの追加や --yjit-perf オプションの追加について追記しています。

[7fb909e240] Takashi Kokubun 2023-10-19 22:50:35 UTC

NEWS に YJIT 関連の記述を追加修正しています。YJIT のリリースノートからマージしているとのこと。

[08e25985d1] yui-knk 2023-10-18 14:59:34 UTC

AST の node の OP_ASGN1 型の時の構造体で構造体サイズの制限のためにネストした NODE を利用していたところをメンバーを増やして直接持つように変更しています。

[b93553bb7e] Nobuyoshi Nakada 2023-10-19 23:00:22 UTC

Cirrus CI の利用をやめたのでその通知のためにあった GitHub Actions の workflow .github/workflows/cirrus-notify.yml を削除しています。

[6d42f4dd2d] Takashi Kokubun 2023-10-19 23:09:33 UTC

tool/update-NEWS-gemlist.rb というツールの shebang で直接 ruby のパスを書かずに /usr/bin/env を経由して起動するようにしています。古い(?)システムの ruby を使うのを避けるため。

[c221af2c3d] Takashi Kokubun 2023-10-19 23:25:08 UTC

NEWS の default gems のバージョンリストから prism を削除して新規追加の項目として別に分けています。

[a9df1e6990] Takashi Kokubun 2023-10-19 23:31:25 UTC

tool/update-NEWS-gemlist.rb のために生成されるファイルを .gitignore に追加しています。

[bd2aee67c1] Takashi Kokubun 2023-10-19 23:33:23 UTC

NEWS の default gems (標準添付ライブラリ)からはずされて bundled gems になったものの記述を少し変更しています。自動生成用のツールも対応。今回は racc が対象になっています。

[72f97ee06e] Matheus Richard 2023-10-19 23:45:07 UTC

doc/contributing/documentation_guide.md のドキュメント生成の手順にビルドディレクトリ作成の手順への参照を追記しています。

[a9d7525fb4] Takashi Kokubun 2023-10-20 00:04:51 UTC

YJIT/RJIT 有効化時の Fiber 用の coroutine 実装の初期化を行う rb_jit_cont_init() の呼び出しを rb_threadptr_root_fiber_setup() から Init_Cont() に移動してプロセス起動時に 1回だけ実行するようにしています。 Init_Cont() は Ractor 毎に呼ばれてしまっていたため。

[985370406d] Takashi Kokubun 2023-10-20 00:12:08 UTC

a9d7525fb420e721da38c0959dcc8980cd0cf38e の続きで rb_jit_cont_init() の呼び出しをさらに早めに Init_BareVM() 内で Thread の機構の初期化前に実行するようにしています。

[2a56a6c3af] Hiroshi SHIBATA 2023-10-20 00:09:25 UTC

require で警告する gem を管理する lib/bundled_gems.rb に racc を追加しています。

[1640dbdedd] Hiroshi SHIBATA 2023-10-20 00:10:02 UTC

require で警告する gem のリストを管理している lib/bundled_gems.rb で定数内のエントリを名前順に並べかえています。

[62c1d8187b] Takashi Kokubun 2023-10-20 00:51:01 UTC

6beb09c2c99a2575027bdbc60a6fbb099416f74d の RubyVM::YJIT.enable メソッド追加時の変更のうち jit_compile() 内でローカル変数へのキャッシュをやめた部分を revert しています。ローカル変数に入れておいたほうが高速になっていたとのこと。 https://github.com/ruby/ruby/pull/8705

[13b33b109f] Hiroshi SHIBATA 2023-10-20 02:22:44 UTC

標準添付ライブラリ logger の gemspec ファイルから add_development_dependency の記述を削除しています。

[0976488970] Hiroshi SHIBATA 2023-10-20 02:23:49 UTC

標準添付ライブラリ logger の gemspec ファイルで依存する ruby のバージョンを 2.5.0 以降に引き上げています。

[9ea1ee66c9] yui-knk 2023-10-20 00:04:00 UTC

拡張ライブラリ ripper のビルド順にもう不要になっていた ripper.h というヘッダファイルの作成をやめています。

[bb849ffdb1] Hiroshi SHIBATA 2023-10-20 05:34:08 UTC

tool/lib/core_assertions.rb で do...end のブロック内の rescue/else 節を直接書く記法をやめて begin 節を書くようにしています。これは default gems でも共有するためのライブラリなので古い ruby でも実行できる必要があるため。

[0061eaddc9] Nobuyoshi Nakada 2023-10-20 07:33:23 UTC

doc/contributing/building_ruby.md に configure の -C オプションでキャッシュが使えるという便利情報を追記しています。知らなかったこれ。

[8b3d044004] Herwin 2023-10-20 09:26:37 UTC

MatchData#inspect の rdoc 用コメントの不要な空行削除。