ruby-trunk-changes 2023-02-04

今日は主に YJIT のブロック起動のサポート拡張や RGenGC の Write Barrier に対応したクラスを増やす変更などがありました。

[faa4c2279a] Burdette Lamar 2023-02-03 14:33:47 UTC

標準添付ライブラリ net/http の Net::HTTP#write_timeout= の rdoc 用コメントにサンプルを追記しています。

[fe5ce1ee41] Jean Boussier 2023-02-03 12:25:20 UTC

File::Stat クラスのインスタンスの flags に RUBY_TYPED_WB_PROTECTED を追加して RGenGC 用の WB-protected なオブジェクトになるようにしています。

[8e7d2cc2ab] Jean Boussier 2023-02-03 14:20:44 UTC

Backtrace::Location のインスタンスも flags に RUBY_TYPED_WB_PROTECTED を立てて WB-protected になるようにしています。またこのためにインスタンス生成時の構造体メンバーのセットに RB_OBJ_WRITE() を使うように修正しています。

[08c529be90] Takashi Kokubun 2023-02-03 15:14:42 UTC

YJIT でブロックを呼び出す invokeblock 命令の実装で ifunc によるブロックの実装の時は JIT 化に対応していなかったのを対応するようにしているようです。 ifunc というのは確か Symbol から生成した(ary.map(&:to_i) みたいに)メソッド呼び出しになるブロックのことだったかな。 https://github.com/ruby/ruby/pull/7233

[c6b90e5e9c] Jean Boussier 2023-02-03 12:15:26 UTC

文字列の大文字小文字関連の処理で内部的に利用する mapping_buffer というオブジェクトも WB-protected になるようにしています。

[e50f102489] Alan Wu 2023-01-16 20:30:18 UTC

GitHub Actions の annocheck を使ったチェックのアクションで最適化フラグ -O2 は optflags 変数経由で渡すようにしています。また annocheck のオプションに --skip-gaps というのを追加しています。

[dff03149a0] Takashi Kokubun 2023-02-03 18:58:28 UTC

misc/.vscode/ に VSCode 用の設定ファイル群を置いています。 シンタックスハイライト用じゃなくてコマンド群などの設定用みたいで主に ruby 自体(YJIT)の開発者用のものですね。

[f901b934fd] Alan Wu 2023-02-03 18:50:02 UTC

YJIT の Rust 実装のコードブロックを管理する構造体の実装の変更。

[e30cf60a19] Peter Zhu 2023-02-02 14:43:38 UTC

hash.c の決して NULL にならないポインタをチェックした不要な分岐を削除しています。

[3fefe660f8] Kouhei Yanagita 2023-02-03 22:26:39 UTC

Struct.new の rdoc 用コメントの call-seq のキーワード引数 keyword_init のデフォルト値が古くなってたので修正しています。 https://github.com/ruby/ruby/pull/7246

[cc9d96b259] Jean Boussier 2023-02-03 15:21:33 UTC

Struct からクラスを生成する時の処理で st_table を直接扱わず rb_hash_xxx() と Hash オブジェクトを操作する関数を利用することで Struct のインスタンス(クラス)を WB-unprotected にしないようにしています。

[a8000d06cc] Jean Boussier 2023-02-03 11:59:44 UTC

Method および UnboundMethod の flags に RUBY_TYPED_WB_PROTECTED を立てて RGenGC の WB-protected なオブジェクトになるようにしています。

[e04d20bc48] zzak 2023-02-01 03:22:23 UTC

標準添付ライブラリ rdoc の標準の rake タスクに rdoc:coverage および rdoc_dev:coverage を追加しています。 -C オプションを追加して rdoc コマンドを実行するみたいですね。

[da9ee7bcf3] zzak 2023-02-03 00:02:12 UTC

e04d20bc482e39262a648e71193c1739b5a702fc の rdoc の変更に追加してメソッド定義内に空行を追加しています。