ruby-trunk-changes 2024-01-09

今日は主に String#grapheme_clusters のメモリリークの修正、Symbol リテラル用の AST の node 種別の追加などがありました。

[8f4eda5092] Stan Lo 2024-01-08 12:42:35 UTC

irb の組み込みコマンド show_source などでメソッドから ruby のコード位置を探索する IRB::SourceFinder で対象のファイルがバイナリフォーマットだった時に無視する対応を追加しています。 https://github.com/ruby/irb/pull/836

[b3d6128049] Peter Zhu 2024-01-04 20:35:34 UTC

String#grapheme_clusters で内部的に利用している正規表現regex_t 構造体を確保して使い捨てているケースがあったみたいでメモリリークしていたのを修正しています。 [ruby-core:116016] [Bug #20150]

[85a7da742a] Peter Zhu 2024-01-07 19:08:50 UTC

File のメソッドの rdoc 用コメント内での File がクラス名としてクロスリファレンス化されるのを抑制するためエスケープを追加しています。

[a0eecfb5ba] Takashi Kokubun 2024-01-08 17:34:57 UTC

YJIT の Integer#<< メソッドのインライン化の最適化で右辺値の値が変化した時の脱最適化の対応を追加しているようです。 https://github.com/ruby/ruby/pull/9426

[4c3c5b645f] "dependabot[bot]" 2024-01-08 16:00:31 UTC

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

[94a98ce632] "dependabot[bot]" 2024-01-08 15:27:05 UTC

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

[41dd15944f] Koichi Sasada 2024-01-08 15:27:40 UTC

M:N Thread の導入時に rb_thread_wait_for_single_fd() 関数を M:N Thread が無効なメイン Racotor から利用時に挙動の変化があったみたいでそれを修正しているようです。

[544c87d009] Avdi Grimm 2024-01-08 20:20:35 UTC

bundler の man ページの記述の修正。

[5ecf2d2880] yui-knk 2024-01-08 12:09:10 UTC

parse.y で node_numeric_str_cmp() という関数を独自に定義して使っていたのを strcmp() を使うようにしています。

[0a30fc6211] Takashi Kokubun 2024-01-08 23:50:09 UTC

misc/lldb_yjit.py という lldb 向けのコマンド実装の YJIT 対応? のスクリプトはもう不要になったみたいで削除しています。

[37ed86fd3c] Peter Zhu 2024-01-08 15:09:13 UTC

b3d612804946e841e47d14e09b6839224a79c1a4 の続きで String#grapheme_cluster の実装で正規表現用の構造体 BBuf のメモリ解放が漏れていたのを修正しています。 [ruby-core:116073] [Bug #20161]

[a4406bc89a] Nobuyoshi Nakada 2024-01-09 04:04:26 UTC

parse.y のアクション部の if 文の条件部に RNODE_LIST(tail)->nd_next という同じ参照が複数回出てたのをブロックを導入して一旦ローカル変数に受けるようにして if をネストさせるリファクタリング

[4b01983bf8] Nobuyoshi Nakada 2024-01-09 04:05:34 UTC

parse.y で **kwargs のようなキーワード rest 引数の記法で内部的に Hash オブジェクトを生成して node に持たせてたのをシンプルに NODE の list で表現するように変更しています。

[f82a6172a2] Hiroshi SHIBATA 2024-01-09 05:53:17 UTC

リリースノートのために変更点の列挙を生成する tool/gen-github-release.rb というツールで各チケットに対応する見出しをリスト化するようマークアップを追加しています。

[db476cc71c] yui-knk 2023-12-31 16:31:28 UTC

Symbol リテラルのために専用の AST の node 種別 NODE_SYM を追加して NODE_LIT から分離しています。数値系に続いて Symbol もですね。

[8f61617a95] Nobuyoshi Nakada 2022-12-21 11:52:55 UTC

tool/outdate-bundled-gems.rb というツールでビルドディレクトリ(ツールの実行ディレクトリ)がソースディレクトリ以外の時
のための処理をソースディレクトリで実行した時にスキップするようにしています。

[963131a2d9] Nobuyoshi Nakada 2023-01-16 10:20:20 UTC

tool/outdate-bundled-gems.rb の実行時に --ruby-platform と --ruby-version というオプションを渡すように make outdate-bundled-gems のコマンドを変更してツールで RbConfog::CONFIG を参照していたのをやめています。実行している ruby のバージョンに依存してしまうためかな。

[bf108636df] Nobuyoshi Nakada 2024-01-09 02:09:11 UTC

同じく tool/outdate-bundled-gems.rb に --only というコマンドラインオプションも追加して実行ディレクトリとソースディレクトリどちら(あるいは両方)を消す対象にするかを選べるようにしています。

[72a78ecd33] Nobuyoshi Nakada 2024-01-09 02:11:53 UTC

さらに tool/outdate-bundled-gems.rb に --all というコマンドラインオプションも追加して、これを付けない時(つまり従来の実行時)に不要な bundled gems の展開ファイルの削除をしないようにしているようです。

[60cd5230f6] Nobuyoshi Nakada 2024-01-09 05:27:46 UTC

さらにさらに tool/outdate-bundled-gems.rb の変更で処理順序を安定させるために削除するファイルやディレクトリのリストを辞書順に sort して使うようにしています。

[1288e7e962] Nobuyoshi Nakada 2024-01-09 05:52:44 UTC

さらにさらに tool/outdate-bundled-gems.rb でソースディレクトリの下の .bundle/.timestamp/ 配下のファイルの削除処理も追加しています。

[7285b165a4] Nobuyoshi Nakada 2024-01-09 06:14:06 UTC

tool/outdate-bundled-gems.rb に 963131a2d90ac72eaad8c1c91fe8abfa186391e8 で追加したコマンドラインオプション --gem-platform と --ruby-version を省略可能にしています。

[23345cc699] Takashi Kokubun 2024-01-09 08:12:11 UTC

GitHub Actions の Windows 環境向け workflow に 2015 によるビルドを追加しています。 https://github.com/ruby/ruby/pull/9452 [ruby-core:115208] [Feature #19982]

[149373ce7f] Hiroshi SHIBATA 2024-01-09 08:14:51 UTC

require で default gems に警告を出すための lib/bundled_gems.rb で racc が bundled になった ruby バージョンの記述が誤っていたので修正しています。

[38bc107f0b] Nobuyoshi Nakada 2024-01-09 09:47:15 UTC

parse.y の node_cdhash_cmp() という関数内の if 文を switch 文に書きなおすリファクタリング