以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20241114より取得しました。


ruby-trunk-changes 2024-11-14

今日は GC.config で GC の実装の名前を取得できるようにする機能追加や標準添付ライブラリ uri の修正とバージョン更新、ブロックを受け取るメソッド群の YJIT 有効化時の最適化のための ruby 実装への切り替えなどがありました。

[fae86a701e] Jean Boussier 2024-11-13 08:34:45 UTC

文字列オブジェクトの生成時に Encoding を紐付ける処理で冗長なチェックを省いた rb_enc_raw_set() という関数を導入してベンチマークでの高速化を図っています。

[37a16c7812] Jean Boussier 2024-11-13 12:17:49 UTC

fae86a701edf9afef6b05199fe8f6651b1e155ea の続き? で fstring の登録時に coderange のコピーも行うようにしています。

[6deeec5d45] Jean byroot Boussier 2024-11-13 14:20:00 UTC

Symbol#to_s で返す文字列を文字列リテラル同様に chilled string にして破壊的変更で警告を出すようにしています。 struct RBasic::flags のビットフラグの利用を変更していてずいぶん手がこんでますね。ここまでしてやりたい変更かなぁという気もしますが。 https://github.com/ruby/ruby/pull/12065 [ruby-core:117240] [Feature #20350]

[202a377d21] Alexis Bernard 2024-11-13 16:13:15 UTC

標準添付ライブラリ rdoc の生成する HTML のテンプレートを修正。 https://github.com/ruby/rdoc/pull/1206

[beafae9750] Randy Stauner 2024-11-13 17:25:09 UTC

YJIT で String#[] の引数に整数を渡した時にメソッド呼び出しを使わず直接コードを生成する最適化を追加しています。 https://github.com/ruby/ruby/pull/12069

[d57d85548f] Takashi Kokubun 2024-11-13 04:35:38 UTC

YJIT が有効な時に限り Integer#downto を ruby 実装に移植しています。ブロックを受け取る iterator 系のメソッドはバックトレースなどの互換性のため? に YJIT が有効な時だけ ruby 実装にするようにしたみたいです。

[c9a5a71695] Takashi Kokubun 2024-11-13 04:39:32 UTC

d57d85548f92143054d90af11b00a25e0239bce0 と同様に Array#select も YJIT が有効な時だけ ruby 実装に移動しています。

[01db456196] Takashi Kokubun 2024-11-13 04:47:48 UTC

d57d85548f92143054d90af11b00a25e0239bce0 と同様に Array#map も YJIT が有効な時だけ ruby 実装に移動しています。いくつかテストも非互換の影響を回避するために変更されています。

[907146973a] Takashi Kokubun 2024-11-13 19:46:29 UTC

d57d85548f92143054d90af11b00a25e0239bce0 の Integer#downto の ruby 実装に Enumerator を返すケースについてのコメントを追加しています。

[30e1d6b5a8] Takashi Kokubun 2024-11-13 21:17:29 UTC

YJIT の --yjit-stats の統計情報に inline_block_count というカウンタを追加しています。直近の iterator 系メソッドの ruby 実装化の効果測定のためでしょうか。 https://github.com/ruby/ruby/pull/12081

[9783cdb0d7] John Bampton 2024-11-14 00:23:20 UTC

GitHub Actions の独自 action の説明文の typo 修正。

[e97dcf53a2] Nobuyoshi Nakada 2024-11-14 00:24:00 UTC

907146973a7aeb85d1748cb427e87d914d86a3b9 の Integer#downto の ruby 実装内に追記したコメントで参照されていたメソッド名の間違いを修正。

[1d6c986104] Hiroshi SHIBATA 2024-11-13 03:01:06 UTC

標準添付ライブラリ uri に互換性のため URI::REGEXP::PATTERN の配下の定数を URI::RFC2396_REGEXP からコピーするようにしています。

[1bab8bf88f] Hiroshi SHIBATA 2024-11-13 03:02:46 UTC

標準添付ライブラリ uri の定数のコピーの処理が冗長になってたところがあったのを削っています。

[a4183781ec] Jean Boussier 2024-11-13 12:34:27 UTC

拡張ライブラリ json のデコード時の Hash のキーを cache する処理を配列内を parse 中のみ行うようにしています。 Hash が配列に入っている時に各要素の Hash は同じキーを持つことが多いのでそのための処理なんでしょうね。

[97be56fc62] Kazuki Yamaguchi 2024-07-09 12:09:11 UTC

拡張ライブラリ openssl のテストメソッドを分割するリファクタリング

[419fb2f3b9] Kazuki Yamaguchi 2024-07-09 12:15:11 UTC

拡張ライブラリ openssl で OpenSSL::X509::Certificate の crl_uris というリストの扱いが標準に準拠していなかった? のを修正しているようです。 https://github.com/ruby/openssl/issues/775

[4e7e2e9e89] Kazuki Yamaguchi 2024-11-01 09:54:26 UTC

拡張ライブラリ openssl の OpenSSL::PKCS7 のメモリリークの修正。

[a0f1f16145] Kazuki Yamaguchi 2024-08-24 04:29:50 UTC

拡張ライブラリ openssl の OpenSSL::ASN1::ObjectId#== が例外を発生させることがある実装になっていたのを例外を発生させないようにしています。 https://github.com/ruby/openssl/issues/791

[4fc82519a0] David Rodríguez 2024-11-08 18:36:27 UTC

budler のテストの spec/bundler/commands/viz_spec.rb の :realworld タグを削っています。

[bf569c80ea] David Rodríguez 2024-11-08 18:37:03 UTC

bundler のテスト用 helper メソッドで不要なチェックを削っています。

[abb6f5c8bc] David Rodríguez 2024-11-08 19:17:23 UTC

bundler のテストのヘルパー類の変更ですがコメントをみてもよくわからず。

[cadf559a99] David Rodríguez 2024-11-11 19:33:49 UTC

rubygems に vendoring されている optparse を 0.6.0 に更新しています。

[570336b80f] David Rodríguez 2024-11-11 19:36:11 UTC

bundler に vendoring されている fileutils のバージョンを 1.7.3 に更新しています。

[26036b1248] David Rodríguez 2024-11-11 19:38:22 UTC

rubygems に vendoring されている net-http のバージョンを 0.5.0 に更新しています。

[0ef7d59ef2] David Rodríguez 2024-11-11 19:41:12 UTC

rubygems に vendoring されている resolv のバージョンを 0.5.0 に更新しています。

[d9c754ab44] David Rodríguez 2024-11-11 19:42:53 UTC

rubygems と bundler に vendoring されている securerandom のバージョンを 0.3.2 に更新しています。

[99c35edae1] David Rodríguez 2024-11-11 19:44:10 UTC

rubygems に vendoring されている timeout のバージョンを 0.4.2 に更新しています。

[7ece47e0de] David Rodríguez 2024-11-11 19:45:08 UTC

bundler に vendoring されている thor のバージョンを 1.3.2 に更新しています。

[43285f543b] Hiroshi SHIBATA 2024-11-14 02:22:05 UTC

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

[44fb1de9e9] git 2024-11-14 02:23:16 UTC

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

[310e6603a2] Hiroshi SHIBATA 2024-11-14 02:58:08 UTC

標準添付ライブラリ uri で定数のコピーのために既に定義済みでないかの Module#const_defined? でのチェック時に第2引数に false を渡して上位の名前空間での定義は無視させるようにしています。

[0f5e3dca5a] Hiroshi SHIBATA 2024-11-14 03:48:33 UTC

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

[028958f9ad] git 2024-11-14 03:50:17 UTC

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

[331f1647d7] Hiroshi SHIBATA 2024-11-14 05:39:47 UTC

bundler のテストで URI のデフォルトの parser を URI::RFC2396_PARSER に変更していたのが不要になったみたいでやめています。

[8a4ce4e9a9] Hiroshi SHIBATA 2024-11-14 05:46:27 UTC

rubygems で Gem::URI::DEFAULT_PARSER.escape を利用していたところを obsoleted になったとのことで Gem::URI::RFC2396_PARSER.escape に変更しています。

[fa10441981] Matt Valentine-House 2024-10-08 11:16:14 UTC

GC.config の返す項目に :implementation を追加して、GC の実装を拡張ライブラリですりかえた時にその実装の名前を返すようにしています。また GC の実装のインターフェースとして要求する関数に rb_gc_impl_active_gc_name() を追加してこの関数で文字列を返すようにしています。

[ee290c94a3] Matt Valentine-House 2024-10-08 20:30:06 UTC

ruby -v で表示する RUBY_DESCRIPTION に GC の実装のすりかえ時にその名前も含めるようにしています。 RUBY_DESCRIPTION がどんどん複雑化していきますね。 [ruby-core:119506] [Feature #20794]

[6795fc4981] Matt Valentine-House 2024-11-08 20:58:53 UTC

fa10441981c89deec914ba243360b40c5aede6ed で導入した GC の実装に要求する rb_gc_impl_active_gc_name() が返す文字列が RB_GC_MAX_NAME_LEN (20文字)を超えてたら警告を出して切り詰めていたのを rb_bug() で異常終了させるようにしています。

[42501015b4] Matt Valentine-House 2024-11-11 12:04:12 UTC

GC.config に Hash を引数に与えて設定する時に :implementation の項目があたら上書きはできないので ArgumentError を発生させるようにしています。 すると old_config = GC.config でバックアップして GC.config = old_config で復旧というのはできないわけですね。




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20241114より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14