ruby-trunk-changes 2023-06-28

今日は主に拡張ライブラリ fiddle の機能追加、標準添付ライブラリ csv の修正、String#index の不具合修正などがありました。

[df5ae0a550] Nobuyoshi Nakada 2023-06-27 13:39:15 UTC

re.c で定義している rb_match_nth_defined() という C API (一応 internal ということにはなっている)を削除して、唯一利用していた variable.c の rb_f_global_variables() からは rb_reg_nth_defined() という API を代替として利用するようにしています。

[913e01e80e] Nobuyoshi Nakada 2023-06-27 14:14:10 UTC

正規表現のマッチ時の $1 みたいな参照が defined? に渡されていた時に不要な文字列の内容のコピーを生成しないようにしているみたいです。

[8aedfefb21] tomoya ishida 2023-06-27 20:43:48 UTC

irb の実装で常に nil を渡していて実質機能していなかったキーワード引数の削除。

[3e08a53655] Nobuyoshi Nakada 2023-06-28 00:23:15 UTC

test/ruby/test_string.rb というテストで大きな整数に "_" での区切りを追加しています。と思ったけど桁が合ってなかった定数があってその修正のついでだったようです。

[f177d35ba8] "dependabot[bot]" 2023-06-28 03:00:10 UTC

GitHub Actions で利用している dependabot/fetch-metadata アクションのバージョン更新。

[9e709d0f4a] Nobuyoshi Nakada 2023-06-28 03:27:35 UTC

String#index のテストで assert_equal や assert_nil を利用していたところを assert_index というこのファイルで独自に定義している assertion メソッドを利用するようにしています。

[0cbfeb8210] Nobuyoshi Nakada 2023-06-28 03:39:52 UTC

String#index で部分文字列がマッチしなかった時にも $~ をクリアするようにしています。 String#rindex はクリアしているのにしてなかったので一貫性のためみたいです。 [ruby-core:114031] [Bug #19746]

[ae71bbbc44] Nobuyoshi Nakada 2023-06-14 06:53:42 UTC

標準添付ライブラリ syntax_suggest の rdoc 用コメントでメソッド名が間違っていたのを修正。

[85937f3a0a] Aaron Patterson 2023-03-16 15:52:40 UTC

拡張ライブラリ fiddle に任意のアドレスのメモリを読み書きするためのクラスメソッド Fiddle::Pointer.read と Fiddle::Pointer.write を追加しています。 Fiddle::Pointer クラスのオブジェクトの生成をせずに使えるというのがミソみたいです。 https://github.com/ruby/fiddle/pull/123

[ebf14d01ba] Sutou Kouhei 2023-05-24 07:38:39 UTC

拡張ライブラリ fiddle の C のヘッダ解析時に int long みたいに修飾子としての long に対応するようにしているようです。テストみてて思ったのですが long int みたいに前につけるのをよく見る気がしますが int signed long みたいに後ろにつけるのもいいんですね。 https://github.com/ruby/fiddle/issues/100

[731d27729b] Sutou Kouhei 2023-05-24 07:50:50 UTC

ebf14d01ba6c586e0ea6dd79ad19c5efa841d4c6 の拡張ライブラリ fiddle の C の解析の long の対応と同じく short 修飾子もつける位置のサポートを強化しています。

[02661f5e9b] Sutou Kouhei 2023-05-24 08:19:01 UTC

拡張ライブラリ fiddle の関数を起動する時に C の型を指定する整数のかわりに文字列で渡すのも受付けるよう機能を追加しています。 https://github.com/ruby/fiddle/issues/96

[572b432e50] Sutou Kouhei 2023-05-24 08:23:55 UTC

02661f5e9b03eb54509248755a8fae8b3e8089a4 の TYPE_P() マクロの使いかたの間違いを修正。

[135d5fa36c] Jean byroot Boussier 2023-05-25 20:19:38 UTC

拡張ライブラリ fiddle の Fiddle::Pointer の生成時に RGenGC 用の Write Barrier を追加して Fiddle::Pointer を RGenGC の WB-protected なクラスにしています。 https://github.com/ruby/fiddle/pull/127

[f1313caec1] Jean byroot Boussier 2023-05-26 13:40:29 UTC

135d5fa36c29d98b999ab8128222d361a2e96779 と同様に拡張ライブラリ fiddle の Fiddle::Closure, Fiddle::Function, Fiddle::Handle などのクラスも RGenGC の WB-protected にしています。これらは Write Barrier の追加はいらなかったみたいです。

[2098093fb4] Mark Schneider 2023-05-31 02:30:59 UTC

標準添付ライブラリ csv のドキュメント doc/csv/options/parsing/liberal_parsing.rdoc に追記しています。

[1f46793406] Sutou Kouhei 2023-06-26 00:51:04 UTC

標準添付ライブラリ csvコメントアウトされた状態で trace メソッドの呼び出しを追加しています。デバッグ用に入れたものをコメントアウトした状態で残してるっぽいですね。

[539559d36e] Sutou Kouhei 2023-06-26 05:29:07 UTC

標準添付ライブラリ csvコメントアウトされた状態の trace メソッド呼び出しで存在しなくなった変数の参照が残ってたので削っています。コメントアウトしてるとこういうのが残りやすいという問題がありますね。

[d6d60d4287] Sutou Kouhei 2023-06-26 05:29:26 UTC

標準添付ライブラリ csv でとても限定的な条件でのみ発生する不具合の修正。

[b954a4ebc6] Sutou Kouhei 2023-06-26 05:41:47 UTC

標準添付ライブラリ csv のバージョンを 3.2.8 に更新。

[715c5ca4a4] git 2023-06-28 07:53:31 UTC

b954a4ebc67d408456a102fe13051e5cc9065878 に追随して NEWS の default gems バージョンリストの csv のバージョンも更新しています。

[bc3ac1872e] Nobuyoshi Nakada 2023-06-28 05:44:01 UTC

Stgring#byteindex の実装が第2引数の offset が文字列長を越えている時のチェックが不足していて不正なメモリアクセスをする可能性が残っていたのを修正しています。 [ruby-core:114034] [Bug #19748]