ruby-trunk-changes 2022-12-26

今日は ruby のバージョンが 3.3.0 に上げられました。またいくつかの標準添付ライブラリのバージョンが更新されました。また Float#round のキーワード引数 half: :even を渡した時の不具合修正がありました。

[2a6dbf03a2] "Yukihiro \"Matz\" Matsumoto" 2022-12-25 23:46:59 UTC

include/ruby/version.h の RUBY_API_VERSION_MINOR を 3 に更新しています。 3.3.0 の開発が開始されました。

[d8b55d11da] Nobuyoshi Nakada 2022-12-26 00:58:43 UTC

minor version が更新されたので include/ruby/internal/abi.h の RUBY_ABI_VERSION マクロを 0 にリセットしています。

[7d264e8e7b] Kazuhiro NISHIYAMA 2022-12-26 02:41:30 UTC

リリース後の恒例で NEWS.md を doc/NEWS/NEWS-3.2.0.md に移動しています。

[bb2c360138] Kazuhiro NISHIYAMA 2022-12-26 02:42:36 UTC

3.3.0 の開始により NEWS.md をリセットしています。

[cd6c7613f3] Hiroshi SHIBATA 2022-12-26 03:06:32 UTC

3.2.0 のリリース前に標準添付ライブラリに入った変更を一旦 revert していたものを再適用しています。

[d29096f4a8] git 2022-12-26 03:08:21 UTC

NEWS の default gems のバージョンリストに abbrev のバージョンを追記しています。自動的な更新ですけど abbrev 弄ってないのになんでだろ。リストが空になった時の対応が必要なのかな。

[1066d42ca8] Jeremy Evans 2022-12-26 03:14:13 UTC

configure での coroutine 実装の選択に OpenBSD の arm64 アーキテクチャの対応を追加しています。

[5ec94ff740] Hiroshi SHIBATA 2022-12-26 04:17:31 UTC

tool/sync_default_gems.rb の racc の同期時に lib/racc/parser-text.rb というファイルは upstream で生成が必要なので rake コマンドで生成しておくようにしています。

[a236661a62] Hiroshi SHIBATA 2022-12-26 04:52:48 UTC

rubyspec の 3.3 以降で更新する予定で追加しておいたテストをひとまず 3.4 にしています。なるほど 3.3 では変更/修正するつもりという意味で追加しているとバージョン更新した瞬間にエラーになりはじめるので、あんまり良くないですね。

[509da028c2] Takashi Kokubun 2022-12-26 05:46:29 UTC

Kernel#loop メソッドを C の関数による定義から ruby による実装に変更しています。 kernel.rb の組み込みメソッド定義のファイルで定義していますがブロックの有無のチェックに Primitive を使っている以外は完全に pure ruby な実装ですね。 https://github.com/ruby/ruby/pull/6983

[5df7118445] Nobuyoshi Nakada 2022-12-26 05:57:20 UTC

rubyspec のビットシフトのテストで極端に大きな値を使うとメモリを大量に使うので RB_BUG_INSTEAD_OF_RB_MEMERROR というマクロを定義してビルドした時しか実行しないようにしています。この判定のためこのマクロが 0以外に定義された時は GC::INTERNAL_CONSTANTS という Hash の :RB_BUG_INSTEAD_OF_RB_MEMERROR というキーを追加するようにしています。

[cc25e81fb7] Hiroshi SHIBATA 2022-12-26 04:26:06 UTC

標準添付ライブラリ rdoc の自動生成されるファイルのヘッダコメントに埋め込まれる Racc のバージョンを更新しています。

[1dc8c18b72] Sutou Kouhei 2022-12-08 03:07:30 UTC

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

[8df574a492] Mau Magnaguagno 2022-12-20 01:27:03 UTC

拡張ライブラリ fiddle で String#unpack のかわりに String#unpack1 を利用するようにリファクタリングしています。

[79ad045214] Sutou Kouhei 2022-12-08 05:22:37 UTC

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

[50e58df0e3] Sutou Kouhei 2022-12-08 02:52:51 UTC

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

[35aba09e7f] BurdetteLamar 2022-12-21 17:21:37 UTC

標準添付ライブラリ net/http の HTTPResponse のステータスコード毎のクラスの rdoc 用コメントに Mozilla のサイトや RFC のリンクを追記しています。

[8c8645f578] Burdette Lamar 2022-12-22 14:19:45 UTC

35aba09e7f0d6b643c6446f44acdec654519ca64 と同様に標準添付ライブラリ net/http の HTTPResponse のステータスコード毎のクラスの rdoc 用コメントに Mozilla のサイトや RFC のリンクを追記しています。

[4c767c1354] Nobuyoshi Nakada 2022-12-22 10:57:30 UTC

標準添付ライブラリ optparse のバージョンを 0.4.0.pre.1 に更新しています。

[cea6951ecf] Junichi Ito 2022-11-28 23:07:47 UTC

標準添付ライブラリ optparse の ARGV.getopts や OptionParser#getopts メソッドに symbolize_names というキーワード引数を追加して結果の Hash のキーを Symbol に変換しておくようにしています。

[24c9adcaeb] Kazuki Yamaguchi 2022-12-23 17:02:13 UTC

拡張ライブラリ openssl のテストで OpenSSL 3.0.0 から 3.0.5 までのバージョンとリンクしていると動かないとのことで skip していたものが OpenSSL::PKey.generate_parameters("DSA") の呼び出しの後で skip していたので呼び出しもしないよう前に移動しています。

[10c9ce9d4c] Sutou Kouhei 2022-12-08 20:58:40 UTC

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

[b7ad60a794] Hiroshi SHIBATA 2022-12-26 05:00:11 UTC

rubygems と bundler に upstream から最新版をマージしています。

[39a96b4344] git 2022-12-26 06:10:05 UTC

NEWS の default gems のバージョンリストにここまでに更新した標準添付ライブラリや拡張ライブラリのぶんを追加しています。

[fc03ba50f1] Takashi Kokubun 2022-12-26 06:48:35 UTC

MJIT が case 文の when 節に複数の値を書く記法の時の C のソース生成でエラーになるコードを生成してしまっていたようなので修正しています。 [ruby-core:111438] [Bug #19263]

[324656e5a5] Nobuyoshi Nakada 2022-12-25 11:05:57 UTC

make matz というターゲットを追加しています。 include/ruby/version.h の RUBY_API_VERSION_MINOR を 1つインクリメントするためのターゲットみたいです。もう今年のは Matz が上げちゃいましたけどね。来年までにヘッダファイル名が変わって動かなくなったりして。

[b466f1a5fb] Nobuyoshi Nakada 2022-12-26 00:58:43 UTC

324656e5a519f9369cc2eae6df6b7dfa73b1c036 の make matz ターゲットで RUBY_ABI_VERSION マクロの 0 にリセットする変更も一緒にするようにしています。

[adc29351f7] yui-knk 2022-12-04 03:19:54 UTC

parse.y の enum lex_state_bits のコメントに "&." 演算子についての記述が抜けてたのを追記。

[5e54c57d83] Marco Costa 2022-12-23 22:00:47 UTC

標準添付ライブラリ monitor の ext/monitor/lib/monitor.rb の MonitorMixin モジュールのための rdoc 用コメントが module 文とのあいだに require がはさまってドキュメント生成されてなかったので require を移動しています。またいくつか余分な空白を消しています。

[b37e9c77fe] Nobuyoshi Nakada 2022-12-26 11:29:06 UTC

MJIT のテストで Integer#< の再定義した時のテストで警告抑制のために alias を使って同名のメソッドへの alias を作っておくという hack をしています。

[cb820bff33] Nobuyoshi Nakada 2022-12-26 08:04:53 UTC

doc/extension.rdoc と doc/extension.ja.rdoc に Data という単語を使っているところが Struct の freeze 版として別の意味のクラス名になっていてクロスリファレンスになってしまうので別の文言を使うようにしています。

[bb60e4615f] Nobuyoshi Nakada 2022-12-26 08:59:51 UTC

doc/extension.rdoc のセクションが全単語を capitalize していたので先頭の単語だけ大文字に変更しています。

[9f2378959e] Kenta Murata 2022-12-26 12:02:47 UTC

Float#round のキーワード引数 half に :even を渡した時に浮動小数点数の何らかの誤差の影響? で誤った丸めになることがあった不具合の修正。 half キーワード引数の追加は 2.4 らしいから 3.0/3.1/3.2 にもバックポートが必要そう。 https://github.com/ruby/ruby/pull/7023