ruby-trunk-changes 2024-04-27

今日は prism の更新、Lrama のバージョン更新、YJIT の不具合修正などがありました。

[25a8b76c76] Stan Lo 2024-04-26 12:12:27 UTC

irb で組み込みコマンドを登録するために IRB::Command.register メソッドに渡す名前を文字列でも受付けて Symbol に変換して登録するようにしています。 https://github.com/ruby/irb/pull/932

[dd578cf2f1] Artur 2024-04-26 12:33:41 UTC

Numeric#nonzero? の rdoc 用コメントに #zero? メソッドへの参照を追記しています。

[67b79d484f] Sam Aaron 2024-04-26 15:10:42 UTC

拡張ライブラリ win32 で force_encoding("ASCII-8BIT") を使ってたところを String#b メソッドを利用するようにしています。 #b は dup も含むので文字列リテラルの fstring 化の対応という意味があるみたいです。

[353cba4955] Peter Zhu 2024-04-25 14:45:26 UTC

GC の実装をすりかえる時の dlopen() のエラーを格納するためのバッファのサイズを拡張しています。また異常終了させる時の rb_bug() にそのメッセージを埋め込んでいたのをさきに fprintf(3) で標準エラー出力でメッセージを出力してから rb_bug() で異常終了するようにしています。 rb_bug() のメッセージのバッファに納まらないことがあるためとのこと。rb_bug() ってそんなにメッセージのバッファ小さいんだ。

[af800bef21] Kevin Newton 2024-04-18 17:37:49 UTC

compile.c の coverage のためのファイル名や行番号の情報を NODE 構造体経由で取得するのでなく外から引数で渡すようにリファクタリングしています。NODE 依存をなくすためみたいです。

[49764869af] Kevin Newton 2024-04-25 12:48:20 UTC

prism 向けの変更のようですが iseq.c の coverage のための位置情報を iseq_setup_coverage() や iseq_new_setup_coverage() 内で rb_ast_t から取得してたのを引数で渡すようにリファクタリングしています。

[94d6295b2d] Kevin Newton 2024-04-25 12:50:23 UTC

prism 向けの ISeq の実装の変更。

[6b120135af] Job Snijders 2024-03-25 12:20:13 UTC

拡張ライブラリ openssl の OpenSSL::X509::Request#version のテストでサポートされない環境がある version の指定をするテストケースを削除しています。OpenSSL 3.3 でチェックが厳しくなって? エラーになるみたいです。

[148518baa0] Stan Lo 2024-04-26 17:52:08 UTC

irb の組み込みコマンドの cws の実行結果を返してたのをやめてコマンドの実装内で puts で出力だけして戻り値は返さないようにしています。組み込みコマンドはメソッドチェインできないし評価値の履歴に含めないほうがいいからということみたいです。

[a1db69f0c9] Takashi Kokubun 2024-04-26 18:11:04 UTC

bootstraptest の YJIT 有効時にたまに失敗する Ractor のテストをスキップするようにしています。

[ab228bd084] Takashi Kokubun 2024-04-26 20:02:22 UTC

YJIT で 7ab1a608e7413cdb0f93243eb3e6e20a32cec44e のローカル変数の最適化の影響でテストでエラーが発生しているみたいで、その修正としてアクセスのコード生成時に可能ならコードブロックを分割するようにしているようです。 https://github.com/ruby/ruby/pull/10648

[41e17f5624] Peter Zhu 2024-04-26 18:10:09 UTC

GC の実装を上書きする機構で使う関数 ruby_external_gc_init() の定義で引数に明示的に void を書くようにしています。警告抑制のため。

[392b811baf] git 2024-04-26 21:01:55 UTC

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

[f64c97418b] Peter Zhu 2024-04-26 19:27:56 UTC

環境変数 RUBY_GC_LIBRARY_PATH で共有ライブラリを指定して GC の実装をすりかえる機能を miniruby でも有効にしているようです。

[c32366ff79] Takashi Kokubun 2024-04-27 00:18:48 UTC

GitHub Actions の Ubuntu 環境での YJIT を有効にしたビルドでテスト時の -j オプションを削除しています。既に GNUMAKEFLSAGS で設定されているためここで引数なしで指定するとむしろ並列実行を抑制してしまうみたいです。

[c746332c79] Takashi Kokubun 2024-04-27 00:35:52 UTC

444553b528a54a97e539de212ffc4c6466a6db20GitHub Actions の YJIT 有効にしたテストで引数に -v を渡すようにしてたのを revert して -q に戻しています。

[73eeb8643b] Alan Wu 2024-04-27 00:03:48 UTC

YJIT の Rust 実装で ISeq を GC から保護するための処理の不具合修正みたいです。

[83c03cc73a] Alan Wu 2024-04-27 00:09:19 UTC

yjit.c の rb_assert_iseq_handle() 内で rb_objspace_markable_object_p() が真を返すことをチェックする RUBY_ASSERT_ALWAYS() を削除しています。compaction が行なわれるとひっかかる可能性があった?

[2ba7c1b142] Alan Wu 2024-04-27 00:12:45 UTC

YJIT の Rust 実装の rb_yjit_root_mark() という関数の引数の型の指定を修正しています。

[bf1f16ef47] yui-knk 2024-04-26 16:10:06 UTC

同梱している Lrama のバージョンを 0.6.6 に更新しています。

[55a402bb75] HASUMI Hitoshi 2024-04-26 12:43:35 UTC

構造体 rb_ast_body_t に line_count というメンバーを追加して VALUE (Fixnum)依存を消すようにしているようです。

[8089faee45] Takashi Kokubun 2024-04-27 03:43:22 UTC

ab228bd0844758a1c444e39030c153874adf9120 の YJIT のローカル変数の最適化の再修正を revert しています。うまく効かなかった模様。

[ef3e3e9a2f] jinroq 2024-04-27 03:47:45 UTC

GitHub Actions のいろんなコンパイラオプションを試す workflow の VM の最適化の一種を指定する OPT_THREADED_CODE に 3 を指定していたのを消して 0 を追加しています。

[9ea77cb351] HASUMI Hitoshi 2024-04-27 07:00:06 UTC

55a402bb759597487905a94d5b1bbff4a672499c の rb_ast_body_t のメンバー追加時に rb_binding_add_dynavars() で追加していた不要な代入処理を削除しています。