ruby-trunk-changes 2024-02-16

今日は主に YJIT の最適化、例外メッセージのクオートの変更へのライブラリのテストなどの追随、bundled gems のテストのためのビルドプロセスの修正などがありました。

[e779c194b3] Peter Zhu 2024-02-14 21:25:56 UTC

io.c でコールバック関数に渡すために内部的に使う構造体 struct binwrite_arg から未使用になってたメンバー str を削除しています。

[da7b9478d3] Alan Wu 2024-02-15 16:59:37 UTC

YJIT のメソッド呼び出し時の無名の keyword rest 引数の処理で空の時に空 Hash でなく nil を渡すようにしています。

[4d1b3a2bf3] Peter Zhu 2024-02-15 17:19:45 UTC

string.c の STR_SET_EMBED() マクロで struct RBasic::flags からクリアするビットフラグに STR_SHARED を追加しています。

[fa334ecd40] Cody Cutrer 2024-02-12 17:13:36 UTC

bundler の Bundler::Dsl#eval_gemfile で instance_eval する時にファイル名の指定として渡す Gemfile のファイルパスをフルパスに変更しています。

[bf5cc9ef8c] git 2024-02-15 20:51:11 UTC

NEWS の default gems のバージョンリストの prism のバージョンを更新しています。

[cfe77db00d] Aaron Patterson 2024-02-15 02:03:35 UTC

YJIT で VM 命令の setinstancevariable のコンパイル時の関数呼び出しのためのレジスタ退避を必要な時だけに限定する最適化。

[bda4192e02] Takashi Kokubun 2024-02-15 23:05:26 UTC

cfe77db00d433d75848974cffe5b3b402a127799 の再修正で YJIT での setinstancevariable 命令のコンパイル時のレジスタ退避処理が重複していたところがあったので削っています。

[cdc07236a4] Takashi Kokubun 2024-02-15 23:05:42 UTC

YJIT の Rust 実装のコメントの追記。

[9d81741f27] Takashi Kokubun 2024-02-15 23:27:44 UTC

YJIT の VM 命令 setinstancevariable のコンパイル時に値スタックからオペランドを pop するのを関数末尾に統合しています。

[1c41dc40d8] Hiroshi SHIBATA 2024-02-16 02:08:03 UTC

標準添付ライブラリ forwardable のテストで例外メッセージのクオートの変更に追随してチェックする正規表現を新旧両対応するように修正しています。

[7ac8d3d6ee] Nobuyoshi Nakada 2024-02-15 13:58:58 UTC

コマンドラインオプション --dump=yydebug が指定された時に構築した AST を rb_ast_dispose() を読んで積極的に解放するようにしています。

[574312dead] Nobuyoshi Nakada 2024-02-15 14:30:29 UTC

コマンドラインオプションの処理をする process_options() 関数から --help でのヘルプメッセージ表示の処理を show_help() という関数に切り出すリファクタリング

[df8ae93756] "dependabot[bot]" 2024-02-16 02:24:08 UTC

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

[6f224d66a5] Jason Garber 2024-02-01 03:04:50 UTC

bundler で gem の取得元として gitlab: の指定で Gitlab からソースコード取得することもできるようにしているようです。

[0ae4d9c109] Takashi Kokubun 2024-02-16 05:36:38 UTC

GitHub Actions の annocheck によるセキュリティチェックの実行をいろんなコンパイラオプションを試す workflow でも実行していたのをやめて、逆に annocheck 用の workflow で make test, make test-tool を実行していたのをやめています。 https://github.com/ruby/ruby/pull/9990

[7b568b1f78] Hiroshi SHIBATA 2024-02-16 02:16:51 UTC

bundler のテストでメソッドの第1引数にかっこなしで正規表現リテラルを書いていたのが警告になるのでかっこを追加しています。

[cf16a70448] Hiroshi SHIBATA 2024-02-16 02:21:50 UTC

rubygems のテストで例外メッセージのクオートの変更に追随して正規表現で新旧両対応するようにチェックを修正しています。

[785b7ee13d] Takashi Kokubun 2024-02-16 05:41:46 UTC

GitHub Actions の annocheck workflow のジョブ名を変更しています。

[839ccad20b] Nobuyoshi Nakada 2024-02-16 03:22:58 UTC

コマンドラインオプションの処理をする関数 process_options() から --parser オプションに関する処理を別の関数群に切り出すリファクタリング

[e0d068aa9c] Nobuyoshi Nakada 2024-02-16 03:25:48 UTC

さらにコマンドラインオプションを処理する process_options() から特殊変数を操作する処理を process_options_global_setup() という関数に切り出すリファクタリング

[a64e93a896] Nobuyoshi Nakada 2024-02-16 04:12:26 UTC

ruby.c の prism 用の関数で rb_funcall() でメソッド呼び出しする際にメソッド名を rb_intern() で ID 化していたのを rb_intern_const() に修正しています。

[81752d2097] Nobuyoshi Nakada 2024-02-16 05:17:51 UTC

ruby.c の prism 向けの関数でコマンドラインスクリプトとして "-" が指定されていて標準入力から読もうとした時に現在未サポートなので例外を発生させるようにしています。

[bc7266c5ce] Takashi Kokubun 2024-02-16 07:13:45 UTC

リポジトリからのビルド時に必要な BASERUBY の最低バージョンを 3.0 に引き上げています。これを利用して RJIT 用のスクリプトで一部新しめの文法を利用するようにしています。 https://github.com/ruby/ruby/pull/9976

[4047222aca] Hiroshi SHIBATA 2024-02-16 06:39:36 UTC

tool/rbinstall.rb で参照する .gemspecfile の優先順位をダウンロードして展開した gem パッケージの内容のほうを先にみるようにしています。

[9f708d48f6] Hiroshi SHIBATA 2024-02-16 06:43:28 UTC

tool/lib/bundled_gem.rb で bundled gems のインストール時に依存している default gems の依存関係を消すようにしています。

[62ab93357f] Hiroshi SHIBATA 2024-02-16 06:48:00 UTC

spec/bundled_gems.mspec で make test-bundled-gems-spec で net-ftp のテストを除外してたのを戻しています。

[38cc9dacaa] Hiroshi SHIBATA 2024-02-16 06:48:28 UTC

common.mk の make test-bundled-gems-prepare でインストールする gem に ipaddr, forwardable, singleton, ruby2_keywords などを追加していたのを消しています。

[9f4d5eb1f4] Hiroshi SHIBATA 2024-02-16 07:33:25 UTC

tool/rbinstall.rb で bundled gems の gemspec ファイルを探すパスの候補に .bundle/specifications/ の下も追加しています。

[e3f452e5d7] Hiroshi SHIBATA 2024-02-16 08:57:38 UTC

tool/rbinstall.rb のインデントの修正のみ。

[0301473fb5] Hiroshi SHIBATA 2024-02-16 08:59:38 UTC

tool/lib/bundled_gem.rb で default gems のリストを %w リテラルで書いたのにコメントを書いてしまってコメント部分も配列に含まれてしまっていたので通常の配列リテラルで書きなおしています。

[fbc29ce032] Hiroshi SHIBATA 2024-02-16 09:16:15 UTC

spec/bundler/support/builders.rb で Dir.mkdir でディレクトリ作成するのをディレクトリが存在しない時だけにしています。既に存在しているとエラーになるので。