ruby-trunk-changes 2023-12-25

今日は 3.3.0 のリリースがされました。また master ブランチは 3.4.0 の開発が開始され、同期が停止されていた標準添付ライブラリの upstream からのマージがたくさんありました。また it の導入もありました。

https://www.ruby-lang.org/ja/news/2023/12/25/ruby-3-3-0-released/

[37753f163e] Samuel Williams 2023-12-24 13:03:36 UTC

IO::Buffer.map のフラグに IO::Buffer::PRIVATE のビットが立ってた時の Windows 環境でのメモリ保護設定の修正や、flags のビットフラグの操作用の関数の導入など。また non-blocking Fiber 用の Scheduler についての rb_fiber_scheduler_set() の Doxygen 用コメントの修正もなぜか一緒に入ってます。なんかリリース直前にドキュメントと本体の修正混ぜてごちゃっと入れるのはよくないですね。 https://github.com/ruby/ruby/pull/9329

[42442ed789] Peter Zhu 2023-12-24 01:24:15 UTC

正規表現のマッチ時に呼ばれる rb_reg_prepare_re() という関数で正規表現オブジェクトの元になっている文字列オブジェクトの参照がコンパイラ最適化により GC の mark 漏れをおこすのを防ぐためローカル変数に代入したうえで RB_GC_GUARD() での保護を追加しています。

[8ad8803bb4] BurdetteLamar 2023-12-24 15:26:20 UTC

Complex#hash の rdoc 用コメントの追加しています。また Complex の rdoc 用コメントの alias の記述を削除しています。

[f0efeddd41] Peter Zhu 2023-12-24 14:08:01 UTC

Regexp#inspect で正規表現の元になった文字列オブジェクトのバッファを直接持ち回ってた関数をオブジェクト(VALUE)で渡すようにして compaction による移動でバッファ埋め込み時に不正なメモリアクセスになる不具合を修正しています。

[86ef38194b] BurdetteLamar 2023-12-24 19:26:07 UTC

String#to_c や Numeric#to_c などのメソッドの rdoc 用コメントの変更。

[5af64ff7db] Peter Zhu 2023-12-24 17:10:10 UTC

Enumerator の各種 each 系メソッドで利用している enumerator_block_call() で引数を格納した配列オブジェクトの VALUE を変数に代入して RB_GC_GUARD() で保護するようにしています。 compaction による異常終了の修正。

[260bf60e52] Samuel Williams 2023-12-25 01:20:53 UTC

IO::Buffer.map で mmap していた場合の IO::Buffer オブジェクトの解放時に munmap() 相当の処理をするようにしています。この状態を管理するために flags のビットフラグに RB_IO_BUFFER_FILE という定数を追加しています。 https://github.com/ruby/ruby/pull/9340

[70618a48f7] Peter Zhu 2023-12-24 21:23:10 UTC

gc_mark_children() や gc_update_object_references() で for ループの条件部にループ変数ではなくてそこに代入する offset_list という配列の要素を直接参照してたのを代入した変数をみるように修正しています。これって offset = *offset_list++ で更新しているから初期値が offset = *offset_list なので先頭の要素だけ 2回評価することになるんじゃないっけ?

[c903cddf55] Hiroshi SHIBATA 2023-12-25 02:17:51 UTC

doc/ ディレクトリ内のドキュメントの typo 修正。

[e233730846] Hiroshi SHIBATA 2023-12-25 02:22:12 UTC

c903cddf55af1505a0779e1a131f2fe47b838260typo 修正の一部で ridiculus という単語はわざと? みたいなので元に戻しています。

[7002e77694] Peter Zhu 2023-12-25 00:22:13 UTC

Symbol#inspect の実装で Symbol の元となる文字列オブジェクトの GC からの保護のため変数に入れて RB_GC_GUARD() で修正しています。

[27ead9907d] Hiroshi SHIBATA 2023-12-25 02:32:03 UTC

lib/ test/ tool/ 内のコメント内の typo の修正。

[1b5f3dd6a1] Hiroshi SHIBATA 2023-12-25 03:04:28 UTC

NEWS から用意してあるけど空のままのセクションを削除しています。

[b4efa4b700] Peter Zhu 2023-12-25 02:26:37 UTC

rb_obj_setup() という C API で RGenGC 用の struct RBasic::flags の RUBY_FL_PROMOTED ビットフラグはコピーしないようにしています。 rb_obj_setup() は内部的には Method、Proc、Binding などの clone の実装でのみ利用されているみたいです。

[2cdbeb29e6] Nobuyoshi Nakada 2023-12-25 02:13:27 UTC

IO::Buffer のテストで一時ファイルが残っていたのを Tempfile を利用して削除するようにしています。

[863ded45a1] Hiroshi SHIBATA 2023-12-25 04:48:26 UTC

bootstraptest, spec/ yjit/ の配下のコメントの typo 修正。

[b641b7e640] Nobuyoshi Nakada 2023-12-25 05:08:21 UTC

rubyspec の C API のテストのための拡張ライブラリの部分で RBIMPL_WARNING_{PUSH,POP}() などの ruby 本体で使ってる警告抑制のためのマクロの利用をやめて spec/ruby/optional/capi/ext/rubyspec.h でコンパイラ毎の警告抑制のための #pragma の記述をまとめて全体的にかけるように? しています。

[a9f0961831] Nobuyoshi Nakada 2023-12-23 09:07:37 UTC

parse.y で無名の引数で委譲を書く時にメソッドの引数に無名引数を受け取ってる場合にブロックパラメータでも無名引数を書くとどちらのことかわからなくなるので def m(*); ->(*){ m2(*) }; end みたいなのは SyntaxError になるようチェックを強化しています。 [ruby-core:111988] [Feature #19370]

[98eeadc932] "Yukihiro \"Matz\" Matsumoto" 2023-12-25 09:13:40 UTC

Matz による include/ruby/version.h の RUBY_API_VERSION_MINOR を更新するコミットです。 3.4 系の開発がはじまりました。

[44592c4e20] Takashi Kokubun 2023-12-25 09:15:41 UTC

暗黙のブロックパラメーターを指す it を実装しています。 ae76c8a11e707176a53c84016256646308f36207 で無引数かっこなしの it メソッドの呼び出しに警告を出力するようにしてい準備していたので 3.4.0 になってさっそく追加しているようです。 https://github.com/ruby/ruby/pull/9199 [ruby-core:109707] [Feature #18980]

[9614bea2cd] Takashi Kokubun 2023-12-25 09:21:32 UTC

Process::Status を整数のように扱っている時の警告の出力を削除しています。

[6e13cde457] Takashi Kokubun 2023-12-25 09:25:36 UTC

rubyspec の Regexp.new のテストで失敗するものを 3.4までのバージョンで guard していたのが失敗してしまうので 3.5 までで除外するように追随しています。

[596db9c1f4] Nobuyoshi Nakada 2023-12-25 06:38:12 UTC

a9f096183170810ac6ce32b20d7810d11a51b5f5 で無名引数をもつメソッド定義内で無名のブロックパラメータを受け取るブロックを構文エラーにした変更で、ブロックパラメータは受け取らずメソッド引数をそのままブロック内で委譲するのもエラーになっていたみたいで修正しています。 [ruby-core:111988] [Feature #19370]

[a164a34110] Takashi Kokubun 2023-12-25 09:36:06 UTC

9614bea2cd59902a051a7387e354e23a52fe5396 の Process::Status の警告出力を削除していたのを revert して、かわりに削除予定のバージョンを 3.5 に延長しています。

[04bf27368d] Takashi Kokubun 2023-12-25 09:42:07 UTC

NEWS.md を 3.4.0 の開始に伴いリセットしています。

[e1c0e8cac4] Takashi Kokubun 2023-12-25 09:45:16 UTC

NEWS にさっそく暗黙のブロックパラメータ it について追記しています。 [Feature #18980]

[c224179be9] git 2023-12-25 09:46:15 UTC

NEWS の default gems の新バージョンリストのヘッダの書きかたを変更しています。 04bf27368d81b34a3364e6b942cfc5300aa14ffd でこの部分をリストにしてしまっていたので自動更新で戻されたのだと思います。

[0d175ec425] Takashi Kokubun 2023-12-25 09:46:50 UTC

3.3.0 向けの NEWS を doc/NEWS/NEWS-3.3.0.md に移動しています。

[e7d0ec3619] Nobuyoshi Nakada 2023-12-25 10:28:45 UTC

NEWS の bundled gems の新バージョンリストのヘッダもリストになっていたのを戻しています。

[cd84459229] git 2023-12-25 10:30:22 UTC

e7d0ec361941a9d67616c3df1dd82d882ee9a9e5 に NEWS の default gems のバージョンリストを自動更新する処理が反応したみたいで空行が 1つ追加されています。

[9cf1c2bb0c] Nobuyoshi Nakada 2023-12-25 11:10:37 UTC

make matz という include/ruby/version.h を更新するためのターゲットに NEWS のコピーとリセットの処理も追加しているようです。

[12b69bf515] yui-knk 2023-12-25 09:40:50 UTC

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

[fa251d60aa] Hiroshi SHIBATA 2023-12-25 08:34:06 UTC

prism の更新。 リリース前にバージョン固定後の変更を一旦 revert したものを再適用しています。

[f54369830f] Hiroshi SHIBATA 2023-12-25 08:43:22 UTC

拡張ライブラリ stringio と strscan のバージョンをそれぞれ 3.1.1 と 3.0.8 に更新しています。リリース前に revert したものを再適用。

[7dd59346a0] Nobuyoshi Nakada 2023-12-18 03:15:31 UTC

標準添付ライブラリ optparse のドキュメントのリンクの修正。

[e55a57af1e] Nobuyoshi Nakada 2023-12-18 03:45:44 UTC

標準添付ライブラリ optparse の rdoc 用コメントの追加。

[e324953090] Nobuyoshi Nakada 2023-12-19 07:21:50 UTC

標準添付ライブラリ rdoc の C 言語のソースの解析で rb_file_const() と rb_curses_define_const() による定数の定義へのサポートを追加しているようです。 https://github.com/ruby/rdoc/issues/1067

[5b8e685877] Hiroshi SHIBATA 2023-12-25 04:43:11 UTC

標準添付ライブラリ rdoc のコメントの typo 修正。

[56804ddd2b] Martin Emde 2023-12-14 20:42:15 UTC

lib/bundler/checksum.rb の空行の削除。コミットログをみると Mutex の利用などなにかしら変更したみたいですけど ruby 本体へのマージの時に対応する部分がなくて差分が消えたのかな?

[df11b3daf8] Martin Emde 2023-12-15 18:30:14 UTC

bundler で 56804ddd2bfd37542916c1233cdea85153d69508 で追加された空行が削除されています。これもコミットログをみるとなにか変更があったみたいなので同期時に消えたみたいです。

[12ff13c6e4] "dependabot[bot]" 2023-12-19 22:07:16 UTC

rubygems の rust 製拡張ライブラリのテストのためのプロジェクトの rb-sys パッケージのバージョンを更新しています。

[da06c09725] Mark Young 2023-12-20 15:00:12 UTC

標準添付ライブラリ base64 の gemspec ファイルに spec.metadata["changelog_uri"] の項目を追加しています。

[24e0f6fcab] Mark Young 2023-12-20 14:36:10 UTC

標準添付ライブラリ net-protocol の gemspec ファイルに spec.metadata["changelog_uri"] の項目を追加しています。

[bb6cf76362] Nobuyoshi Nakada 2023-12-18 05:02:15 UTC

標準添付ライブラリ timeout の rdoc 用コメントの追加と :nodoc: タグによるドキュメンテーション抑制の追加。ドキュメントの網羅チェックの一環のようですね。

[1e1da75031] Mark Young 2023-12-20 14:44:09 UTC

標準添付ライブラリ timeout の gemspec ファイルに spec.metadata["changelog_uri"] の項目を追加しています。

[12e78fbfcd] Nobuyoshi Nakada 2023-12-18 07:12:47 UTC

拡張ライブラリ etc の rdoc 用コメントの追加。

[bf2532f039] Nobuyoshi Nakada 2023-12-20 04:27:08 UTC

拡張ライブラリ etc のドキュメントのカバレッジのための対応のコミットみたいですけど lib/io.rb というファイルが追加されてしまっています。本来は upstream でだけ作る予定のファイルだったのではないかと思います。

[4d344dc194] Nobuyoshi Nakada 2023-12-18 07:09:06 UTC

拡張ライブラリ etc に .document ファイルを追加してドキュメンテーションの対象に etc.c を指定しています。

[cb6a556927] Mark Young 2023-12-20 14:25:32 UTC

拡張ライブラリ date の gemspec ファイルに spec.metadata["changelog_uri"] の項目を追加しています。

[60e46926ba] Sutou Kouhei 2023-11-08 07:17:28 UTC

標準添付ライブラリ csv のバージョンを 3.2.9 に更新しています。

[b4cb7ead30] Sutou Kouhei 2023-11-08 07:14:22 UTC

拡張ライブラリ fiddle のバージョンを 3.2.9 に更新しています。

[95e7af0c59] Alexander Momchilov 2023-12-19 17:26:43 UTC

拡張ライブラリ psych の Psych::Visitors::YAMLTree::Registrar の未使用のインスタンス変数の削除。

[bb1625858f] Alexander Momchilov 2023-12-19 17:27:06 UTC

拡張ライブラリ psych の不要な rescue 節の削除。

[edadd5b796] Hiroshi SHIBATA 2023-12-25 04:48:54 UTC

拡張ライブラリ psych のコメントの typo 修正。

[3d40f11564] Nobuyoshi Nakada 2023-12-18 04:55:15 UTC

標準添付ライブラリ tempfile の rdoc 用 :nodoc: タグの追加。

[6931222883] Hiroshi SHIBATA 2023-12-25 04:38:24 UTC

標準添付ライブラリ securerandom のコメントの typo 修正。

[4173c4bcfb] Nobuyoshi Nakada 2023-12-16 06:30:02 UTC

拡張ライブラリ io/console でエスケープシーケンスの "\x1b\x5b" (いわゆる "^[") をマクロ定義するリファクタリング

[e7f91fd74c] Nobuyoshi Nakada 2023-12-16 06:55:45 UTC

拡張ライブラリ io/console の rdoc 用コメントの追加。

[a01c1e821c] Nobuyoshi Nakada 2023-12-16 07:05:49 UTC

拡張ライブラリ io/console のバージョンを 0.7.2.dev.1 に更新しています。

[65ec74a8dd] Mark Young 2023-12-20 15:11:48 UTC

標準添付ライブラリ io/console の gemspec ファイルに spec.metadata["changelog_uri"] の項目を追加しています。

[ea5776e7e4] John Hawthorn 2023-12-05 21:44:28 UTC

拡張ライブラリ json で SYM2ID() + rb_id2str() を使ってたところを rb_sym2str() という C API を利用するように修正しています。

[eb53131367] Kasumi Hanazuki 2023-11-27 04:15:48 UTC

標準添付ライブラリ ipaddr の IPAddr.ntop の引数に ASCII-8BIT 以外の文字列が渡された場合に例外を発生させるようにしています。 https://github.com/ruby/ipaddr/issues/56

[da77c79d80] Luke Randall 2023-12-06 17:31:53 UTC

標準添付ライブラリ ipaddr の例外メッセージに埋め込む変数の参照のミスを修正しています。

[86fa418dea] Earlopain 2023-12-16 12:58:58 UTC

標準添付ライブラリ ipaddr の IPv6 でのローカルアドレスの書きかたのバリエーションの対応を拡張しています。

[5384e5dfde] Burdette Lamar 2023-12-21 20:26:23 UTC

標準添付ライブラリ irb の rdoc 用コメントで :stopdoc: でドキュメント抑制したところにドキュメントっぽいコメントが書いてあったのを削除しています。 https://github.com/ruby/irb/pull/819

[df941aa90d] David Rodríguez 2023-12-14 13:20:18 UTC

標準添付ライブラリ resolv のコメントの typo 修正。

[af4e839c47] Nobuyoshi Nakada 2023-12-18 03:24:46 UTC

標準添付ライブラリ optparse のドキュメントにオプションの引数の選択肢を指定する記法について追記しています。 https://github.com/ruby/optparse/pull/51

[1966a61a1e] Hiroshi SHIBATA 2023-12-25 10:33:23 UTC

rubygems と bundler のバージョンをそれぞれ 3.6.0.dev と 2.6.0.dev に更新しています。

[8cd9bdd7fc] git 2023-12-25 12:13:38 UTC

NEWS の default gems の新バージョンリストに 3.4.0 に変更後のここまでの標準添付ライブラリの更新のぶんを反映させています。

[f730a5a31d] Nobuyoshi Nakada 2023-12-25 11:18:15 UTC

GitHub Actions の check_misc workflow でフォーマット文字列の修飾子に "z" を付けて size_t 型であることを明示する記法が VC2013 でサポートされないとのことで混入していないかチェックする grep コマンドの実行を追加しています。