ruby-trunk-changes 2023-04-06

今日は主に標準添付ライブラリ syntax_suggest の更新や YJIT の最適化などがありました。

[929d55c3c7] Alan Wu 2023-04-04 20:12:01 UTC

9e678cdbd054f78576a8f21b3f97cccc395ade22 の YJIT の Rust 実装の警告抑制のための unsafe ブロックの削除を revert しています。

[8f734cf93e] Alan Wu 2023-04-04 20:25:37 UTC

929d55c3c7d312a21e5691f9c6793450e2c617d1 に追随して yjit/src/core.rs で unsafe についての警告を有効にする設定を追加しています。

[3e1e09b2b7] Alan Wu 2023-04-04 20:28:35 UTC

make jit-smoke-test でビルドする Rust のバージョンを 1.58.0 に明示的に指定するように cargo のオプションに追加しています。

[615a1bc470] Takashi Kokubun 2023-04-05 14:32:04 UTC

YJIT の統計情報としてコード領域に利用したメモリ領域の合計を保持するようにしているようです。 https://github.com/ruby/ruby/pull/7658

[4b100f75d2] Daniel DeLorme 2023-04-05 13:16:26 UTC

Kernel#abort の rdoc 用コメントに例外が発生して(捕捉されなければ)バックトレースが表示されることを追記しています。 [ruby-core:113112] [Bug #19578]

[f07c756494] Nobuyoshi Nakada 2023-04-03 05:10:16 UTC

tool/lib/core_assertions.rb の assert_linear_performance のタイムアウト値の計算方法を変更しています。

[f9eb2515a3] Nobuyoshi Nakada 2023-04-03 05:22:24 UTC

tool/lib/core_assertions.rb の assert_linear_performance の使用時間測定の処理を Proc オブジェクトとして切り出しています。

[533423ebe4] Nobuyoshi Nakada 2023-04-03 05:27:36 UTC

tool/lib/core_assertions.rb の assert_linear_performance で処理時間の測定を可能なら Process::CLOCK_THREAD_CPUTIME_ID や Process::CLOCK_PROCESS_CPUTIME_ID など実際の CPU 利用時間で測定するようにして環境の影響を受けにくいようにしています。

[52e571fa72] Mike Dalessio 2023-04-05 03:55:43 UTC

ruby_xfree() をプロセス終了時の vm_destruct() の実行後に呼ぶと異常終了してしまうので対策として VM がもう破棄されていたら ruby_mimfree() を使うように fallback を追加しています。 [ruby-core:113129] [Bug #19580]

[1587494b0b] Takashi Kokubun 2023-04-05 20:19:31 UTC

YJIT に Integer の Integer#*、 Integer#/、Integer#[] などのメソッドの Fixnum 版の時の実装を直接生成するようにする最適化を追加しています。 https://github.com/ruby/ruby/pull/7665

[2f8e5c80e6] Stan Lo 2023-04-05 21:40:34 UTC

標準添付ライブラリ irbruby 2.6 以前をサポートするための分岐などを削除しています。

[7b27ad9ad3] Adam Hess 2023-04-05 23:11:04 UTC

doc/contributing/glossary.md に BIN という語彙について追記しています。 Basic Instruction Name とのことで VM 命令の名前のことらしい。 https://github.com/ruby/ruby/pull/7667

[5d718f109d] "dependabot[bot]" 2023-04-06 02:59:52 UTC

GitHub Actions の workflow で使っている github/codeql-action アクションのバージョンを更新しています。

[b5f2432917] Vít Ondruch 2019-09-11 13:39:55 UTC

rubygems のテストでヘルパーメソッドを利用するようにするリファクタリング

[f3d69bed62] David Rodríguez 2023-03-16 16:45:54 UTC

bundler で不正な Gemfile.lock でハングアップしてしまう不具合の修正のようです。

[69460791cc] Vít Ondruch 2019-09-11 13:33:04 UTC

rubygems の Gem::Installer#write_default_spec の rdoc 用コメント? の説明を追記しています。

[061f5f4374] Marc-Andre Lafortune 2023-04-05 21:12:43 UTC

Data クラスのテストにインスタンス生成に通常引数を渡した時のテストケースを追加しています。

[588dd44d41] Nobuyoshi Nakada 2023-03-08 13:52:42 UTC

bundler の bundle gem で生成する .rspec ファイルのテンプレートから --color オプションを削除しています。がコミットログをみるとこれ syntax_suggest の同期処理で入ったコミットみたいなので誤って入ったんじゃないかな?

[33cfd262fc] schneems 2023-03-07 23:49:11 UTC

標準添付ライブラリ syntax_suggest の SyntaxSuggest.record_dir というメソッドでディレクトリを作成する時に latest という symbolic link も作るようですがこれを上書きする時に削除してから FileUtils.ln_sf を呼ぶようにしています。

[e5236471c3] schneems 2023-03-08 14:51:00 UTC

標準添付ライブラリ syntax_suggest で空白のみの行を削除しないようにしているようです。

[5487ee4fe8] schneems 2023-03-08 23:44:58 UTC

標準添付ライブラリ syntax_suggest の不具合修正のようです。コミットログにいろいろ書かれていますがよくわからず。

[2acbcec056] schneems 2023-03-09 00:30:33 UTC

標準添付ライブラリ syntax_suggest のリファクタリングとコメントの追加。

[63ea6b0cf2] schneems 2023-03-09 20:13:46 UTC

e5236471c3ce194199a6ceb70012eb2ca243407e の標準添付ライブラリ syntax_suggest の修正を revert しているようです。 5487ee4fe8b1311d42367969860468e48667cc87 の修正によりこっちは不要になったということみたいです。

[d511e6960f] Yusuke Endoh 2023-03-16 23:52:27 UTC

標準添付ライブラリ syntax_suggest で提案コメントの最後に改行がなかったら追加しておくようにしています。

[d2eef4b786] schneems 2023-03-17 01:45:18 UTC

syntax_suggest の upstream の bin/ 配下のファイル追加がこっちに同期されてしまったみたいで bin/rake と bin/rspec が追加されています。

[8d72d6159c] schneems 2023-03-17 00:44:02 UTC

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

[7ab640d9dd] schneems 2023-03-17 21:07:27 UTC

標準添付ライブラリ syntax_suggest のバージョンを 1.0.4 に更新しています。ついでにテストも追加されていますがこれは関係あるのかな。

[6ca1f3eec4] Hiroshi SHIBATA 2023-04-06 07:15:41 UTC

8d72d6159c75f2ed40510d7721c6e5fbdb1976af で追加された syntax_suggest のテストの修正。

[c78476cee8] git 2023-04-06 07:18:54 UTC

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

[70371aa071] Hiroshi SHIBATA 2023-04-06 07:25:05 UTC

588dd44d418d56dce3f2a388c4021d11f9aa4324 で syntax_suggest の同期で意図せず lib/bundler/templates/newgem/rspec.tt が更新されてしまっていたのを revert しています。

[f269fae07e] Hiroshi SHIBATA 2023-04-06 07:36:09 UTC

d2eef4b7867578df302cfa9d7c97eebbef8d9ee4 で syntax_suggest の同期で意図せず bin/rake と bin/rspec が追加されてしまったのを revert しています。

[b0297feb1f] Matt Valentine-House 2023-02-17 11:07:24 UTC

newobj_of_cr() を newobj_of() と改名して元の newobj_of() は削除しています。cr って何だっけ? と思ったけど Ractor 毎の arena の指定のための rb_ractor_t を受け取るかどうかの違いで、常に渡すようにしているようです。

[d91a82850a] Matt Valentine-House 2023-02-17 13:32:51 UTC

rb_vm_t のメンバー shape_list、root_shape、next_shape_id を削除して rb_shape_tree_t という構造体に切り出し、これをグローバル変数で保持しておくようにしているようです。この変数 static を付けなくていいのかな。と思ったけど extern している? YJIT から使うためかなぁ。ううむ、これはいいのだろうか。

[879cda98a4] Matt Valentine-House 2023-02-17 14:14:53 UTC

vm_core.h で #include "shape.h" していたのをやめて、依存していたマクロ定義などを vm_core.h に移動しています。他の必要なヘッダに #include "shape.h" を追加しています。

[026321c5b9] Matt Valentine-House 2023-02-17 15:51:16 UTC

RVARGC_NEWOBJ_OF() とか RB_RVARGC_EC_NEWOBJ_OF() といった NEWOBJ_OF() マクロのバリエーションを廃止して、NEWOBJ_OF() マクロの引数を追加しています。このへんのマクロは公開 API になってないかなと思ったけど internal/gc.h での定義なので非公開みたいですね。 [ruby-core:112671] [Feature #19474]

[2a34bcaa10] Matt Valentine-House 2023-03-02 11:51:53 UTC

common.mk や拡張ライブラリの depend ファイルの依存関係を再生成しています。また YJIT の C Binding も再生成しています。