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


ruby-trunk-changes 2024-09-13

今日は主にデフォルトの parser を prism 利用版にする変更やディレクトリ操作や user/group 情報の取得のシステムコール呼び出しで GVL を解放する変更などがありました。

[885cf350de] ydah 2024-09-11 09:32:50 UTC

同根している lrama のバージョンを 0.6.10 に更新しています。

[f47c057c32] ydah 2024-09-12 01:42:50 UTC

885cf350de4c80a918a33da109d0462711ac5e49 の更新で削除漏れていた lrama のファイルを削除しています。

[b10500b72b] Peter Zhu 2024-09-10 15:25:47 UTC

rb_vm_ci_free() 内で RB_VM_LOCK_ENTER()/RB_VM_LOCK_LEAVE() で VM のロック取得していたのを削除しています。この関数を呼ぶ時に既にロック取得しているはずなので。

[ad761ad2d0] Jeremy Evans 2024-07-18 19:08:06 UTC

ホームディレクトリの取得や user/group の情報取得のための関数呼び出し時に GVL を解放するようにしています。これらはファイルの読み込みを含むため、かと思ったのですがコミットログによると拡張ライブラリから同様の関数の呼び出しの可能性があると不正なメモリアクセスが発生する恐れがあったとのこと。ちょっとよくわからないですが。 [ruby-core:118347] [Bug #20587]

[471d3950e6] BurdetteLamar 2024-09-11 23:43:36 UTC

Array#each_index の rdoc 用コメントの手直し。

[c147e43b4f] BurdetteLamar 2024-09-11 23:49:32 UTC

Array#empty? の rdoc 用コメントの関連コメントの追記。

[d8aa8f4184] BurdetteLamar 2024-09-11 23:56:20 UTC

Array#eql? の rdoc 用コメントの手直し。

[fcb058309b] Nobuyoshi Nakada 2024-09-12 01:19:14 UTC

テスト用の独自 assertion の compare_version を version_match? と名前を変えて Range オブジェクトで major バージョンの範囲を指定することができるようにしています。

[a542479a75] tomoya ishida 2024-09-12 15:04:33 UTC

標準添付ライブラリ irbIRB::Context::KEYWORD_ALIASES という定数を削除して利用していたところでは展開して直接キーワードを書くようにしています。 https://github.com/ruby/irb/pull/1004

[f2919bd11c] Jeremy Evans 2024-09-12 17:04:10 UTC

readdir(), telldir(), closedir() などのディレクトリ操作のシステムコールのエラーチェックを追加しています。 [ruby-core:118346] [Bug #20586]

[ea2af5782d] Kevin Newton 2024-08-28 20:35:03 UTC

デフォルトの parser を prism 版を利用するようにしています。 typeprof のテストが通らないので一時的に GitHub Actions ではエラーを無視させるようにしています。 [ruby-core:118243] [Feature #20564]

[d5232fd7ae] Kevin Newton 2024-09-11 15:59:24 UTC

prism の利用で通らないテストを一時的にスキップするようにしています。

[0960c8aacd] Burdette Lamar 2024-09-12 19:19:20 UTC

Array#fetch_values の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/11603

[606db2c423] Peter Zhu 2024-09-12 14:21:08 UTC

gc/default.c の rb_gc_impl_mark_weak() の即値チェックを呼び元の本体側 gc.c の rb_gc_mark_weak() のほうに引き上げています。

[661f64e876] Peter Zhu 2024-09-12 14:23:16 UTC

gc.c の RB_GC_MARK_OR_TRAVERSE() で展開するコードブロックで objspace を自動変数に格納して使いまわすようにしています。

[92b7b78e06] Peter Zhu 2024-09-12 14:24:04 UTC

gc.c の RB_GC_MARK_OR_TRAVERSE() マクロの展開に rb_gc_impl_during_gc_p() をチェックする assertion を追加しています。

[0fc8422a05] Peter Zhu 2024-09-12 14:27:55 UTC

gc.c の rb_gc_mark_weak() に rb_gc_impl_during_gc_p() のチェックを釣り上げて、vm->gc.mark_func_data の存在の有無により GC 中かどうかの判定をするように変更しています。なんか GC の実装の切り出しの部分の責任範囲の理解がとても難しそう。

[d80a81c152] Nobuyoshi Nakada 2024-09-13 00:28:51 UTC

ad761ad2d0a63270fbd243a477dc962446a5116e で導入した getpwnam_r() の GVL 解放のための構造体の login メンバーに const 修飾子を追加しています。

[d1d0c50c9d] Yusuke Endoh 2024-09-13 02:32:21 UTC

File.stat のテストの未使用の変数の警告除去のため不要な代入をやめています。

[5e3f1b6a6d] Yusuke Endoh 2024-09-13 02:34:20 UTC

TracePoint のテストで未使用の変数の警告除去のため不要な代入文を削除しています。

[6ae05584bd] Yusuke Endoh 2024-09-13 02:30:24 UTC

標準添付ライブラリ net/http のテストで未使用の変数やメソッド再定義の警告の除去のため変数名の prefix に _ を追加したり rescue の変数名指定を消したり不要なメソッド定義を削除したりしています。

[3146cbbbc4] Hiroshi SHIBATA 2024-09-13 04:19:31 UTC

require 時の default gems の警告を出力するための lib/bundled_gems.rb で irb から reline を require した時には冗長なので警告を抑制するように特別扱いする処理を追加しています。

[5894202365] aoki1980taichi 2022-06-23 12:40:40 UTC

AOBench によるベンチマークスクリプトのメソッド名の typo (英単語の間違い)を修正しています。

[cf5b965897] Yusuke Endoh 2024-09-13 05:28:23 UTC

gems/bundled_gems の typeprof のテストに使う commit hash の指定を更新しています。

[f090d1fa59] Yusuke Endoh 2024-09-13 05:50:35 UTC

bundled gems のダウンロード時にダミーの gemspec を作る処理でバージョン番号を切り出すのに lib/xxx.rb に VERSION 定数の定義がなかった時に lib/xxx/version.rb も読むようにしています。typeprof の対応のためかな。

[b6c7226fac] Yusuke Endoh 2024-09-13 06:18:01 UTC

gems/bundled_gems のテストに使う commit hash の指定を再度更新しています。

[0f3dc2f958] Yusuke Endoh 2024-09-13 04:48:51 UTC

本体のテストや拡張ライブラリ socket に含まれる ext/socket/lib/socket.rb で未使用のブロックの警告の false positive を抑制するため一時的な $VERBOSE=nil の設定や明示的なブロック引数の宣言の削除などをしています。 &block で受けてそれをメソッド呼び出しで委譲する時も誤検出になるのはなんでだろう。

[24493779b7] Nobuyoshi Nakada 2024-09-13 01:50:38 UTC

Range オブジェクトで両端が nil のもの (nil..nil) の Range#overlap? は、つまり境界がない範囲(全域)なので引数が空集合でない限り常に true を返すようにしています。 [ruby-core:119136] [Bug #20725]




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

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