ruby-trunk-changes 2022-11-18

今日はメソッド定義に無名の keyword rest 引数 "**" を使った時に名前のあるキーワード引数が使えない不具合の修正やそれに関連して無名の引数情報を RubyVM::AbstractSyntaxTree から参照できるようにする変更、Windows での UNIXSocket の対応、YJIT の統計情報の項目追加などがありました。

[a145a204ec] Nobuyoshi Nakada 2022-11-17 12:50:40 UTC

Time.new の rdoc 用コメントの秒の指定に Float や Rational を渡すこともとできることを追記しています。

[90bfac296e] TSUYUSATO Kitsune 2022-11-16 14:40:44 UTC

正規表現エンジンの init_cache_index_table() という関数で OP_CCLASS_MB という命令(Onigmoは正規表現の処理のためのVMが存在しているのでそのVMの命令?)の対応が抜けていたのを修正。

[189e3c0ada] TSUYUSATO Kitsune 2022-11-17 04:58:08 UTC

正規表現エンジンの修正。中身をよく知らないのでなんとも言えません。

[3f3a539197] Takashi Kokubun 2022-11-17 19:31:56 UTC

YJIT の --yjit-stats で出力する項目に total_insns_count を出力するのをそれが得られるようにビルドされた時だけにするよう対応しています。

[4b29eb17f2] Peter Zhu 2022-11-17 19:43:46 UTC

shape.c のインデント修正のみ。

[c80edc9f98] Takashi Kokubun 2022-11-17 20:59:59 UTC

YJIT の --yjit-stats の出力項目に object_shape_count というのを追加しています。Object Shapes で管理している全オブジェクトの shape (インスタンス変数の集合)の種類の数のようです。 https://github.com/ruby/ruby/pull/6754

[4e4b29b1a9] Takashi Kokubun 2022-11-17 22:00:25 UTC

YJIT の code GC (YJIT のコンパイルしたコード領域の専用の GC)のテストでたまに失敗することがあるみたいで追加する page 数を調節しています。

[ea8a7287e2] Samuel Williams 2022-11-17 22:50:25 UTC

Windows 環境での拡張ライブラリ socket の UNIXSocket の対応を追加しています。 Windows なのに UNIX socket 使えるの? と思いましたが普通に socket(2) に AF_UNIX を渡す実装をしてるので最近の Windows だとサポートされているみたいですね。 [ruby-core:110800] [Feature #19135]

[d8202a52a5] Takashi Kokubun 2022-11-18 00:47:49 UTC

標準添付ライブラリ irb が追加する Binding#irb メソッドにキーワード引数 show_source を追加して irb 起動時に実行位置の周辺のソースコードを表示するのを抑制できるようにしています。

[ab4379e086] Takashi Kokubun 2022-11-18 01:55:24 UTC

inline 関数 RB_SPECIAL_CONST_P() 内で RB_TEST() を利用しているのをやめて RUBY_Qfalse との比較に戻して(?)います。 RB_TEST() は Qnil との比較も含んでいるので冗長なので結果は変わらないけどチェック内容を明確にするためとのこと。 https://github.com/ruby/ruby/pull/6759

[98e9165b0a] Jimmy Miller 2022-11-18 04:17:40 UTC

YJIT の C 実装のメソッド起動でまれに不正アクセスが起きる可能性があった不具合を修正しています。 https://github.com/ruby/ruby/pull/6752

[bd148a2bdd] Yusuke Endoh 2022-11-18 05:38:09 UTC

tool/generic_erb.rb の未使用変数の警告抑制のため ERB#result のかわりに ERB#result_with_hash を利用して erb に渡す変数を Binding 経由で暗黙のうちに渡すのではなく明示的に指定するようにしています。

[096ffebbbf] Yusuke Endoh 2022-11-18 05:39:40 UTC

ea8a7287e2b96b9c24e5e89fe863e5bfa60bfdda で追加した Windows 版での UNIXSocket のテストで未使用変数の警告を抑制するため不要な代入を削除しています。

[e19afe36ca] Yusuke Endoh 2022-11-18 05:45:21 UTC

bd148a2bdd0c1a4d7679eedcd649171cdb4234d7 の tool/generic_erb.rb の警告抑制の変更を revergt しています。ERB#result_with_hash が古い ruby では動かなかったので。

[417f3cd893] Yusuke Endoh 2022-11-18 05:56:55 UTC

bd148a2bdd0c1a4d7679eedcd649171cdb4234d7 の tool/generic_erb.rb の警告抑制のやりなおしで、同じ変数間の再代入をして未使用変数の警告を抑制するようにしています。

[ca1aa7afea] Yusuke Endoh 2022-11-18 06:39:50 UTC

標準添付ライブラリ irb の組み込みコマンドのテストでメソッド再定義の警告抑制のためテストのためのメソッド定義するところを既に定義済みならスキップするようにしています。

[a80b66e7eb] Hiroshi SHIBATA 2022-11-18 08:51:33 UTC

NEWS にサードパーティーライブラリ(libyaml, libffi) の同梱をやめた拡張ライブラリ psych と fiddle のシステムにインストールしたライブラリを指定したビルド方法について追記しています。

[00872d120b] Stan Lo 2022-11-18 09:11:19 UTC

標準添付ライブラリ irb の組み込みコマンドに debug.gem を利用した debug コマンドを追加しています。

[ddd62fadaf] Shugo Maeda 2022-11-16 14:03:39 UTC

メソッド定義の引数に "**" で keyword rest 引数を委譲専用にするため無名で受け取る記法を使うと、他に名前のあるキーワード引数も書くと SyntaxError になっていたのを修正しています。うーんなるほど、その場合メソッド呼び出しに "**" を渡すと名前のあるキーワード引数は委譲されるキーワード引数には含まれないんですね。 [ruby-dev:51196] [Bug #19132]

[f0ce118662] yui-knk 2022-11-17 14:43:21 UTC

RubyVM::AbstractSyntaxTree の ARGS という種類のノードから無名の rest 引数やブロック引数("*" や "&" だけ書く記法)の情報にもアクセスできるようにしています。引数名のかわりに "*" とか "&" とかの対応する記号のみの文字列が取れるようになるようです。