ruby-trunk-changes 2024-07-04

今日は主に GC の実装分離の強化と Integer#downto や Array の組み込みメソッドの ruby 実装への移植、rubygems のテストの webrick 依存の削除などがありました。

[51bd816517] Peter Zhu 2024-05-03 16:00:24 UTC

GC の実装を共有ライブラリですりかえできるようにした関係で、gc.c から Ruby 本体のデフォルトの実装に固有の関数などは gc_impl.c に移動するようにしています。うーん、まあ気持ちはわかるけど……。 [ruby-core:117765] [Feature #20470]

[ae8ef06580] Peter Zhu 2024-05-03 16:02:56 UTC

GC のデフォルトの実装も共有ライブラリとしてロードできるようにしています。が、やっぱり大量の関数が struct gc_function_map に追加されてて、GC の実装を切り離すメリットってそんなにあるのかなぁ。VM の実装に強く依存する面があると思うんだけど。 [ruby-core:117765] [Feature #20470]

[9d3a58f364] Peter Zhu 2024-05-03 16:05:40 UTC

51bd816517941798c63e587a5a9f3caf69cd510e の変更に追随して common.mk の依存関係を再生成しています。 [ruby-core:117765] [Feature #20470]

[9d7c9df471] Peter Zhu 2024-05-03 19:23:13 UTC

GitHub Actions の workflows で ae8ef065809cd96fbfc6855e6c21a3f2d0ca8e71 の変更による GC の共有ライブラリ化を利用したビルドのジョブを追加しています。 [ruby-core:117765] [Feature #20470]

[5f20957b85] Peter Zhu 2024-07-02 15:05:36 UTC

ruby_load_external_gc_from_argv() の宣言を main.c から internal/gc.h に移動しています。 [ruby-core:117765] [Feature #20470]

[786cf9db48] Jean Boussier 2024-07-03 14:17:34 UTC

d25b74b32cbce4fcaed503f124fa8e7d721f18bf の変更に伴ない不要になった RUBY_ASSERT() による assertion を削除しています。 [Feature #20589]

[cbc40aca3a] Peter Zhu 2024-07-03 15:04:56 UTC

最近の変更で RGENGC_CHECK_MODE=2 を指定してビルドした時に変更漏れがあってコンパイルエラーになっていたのを修正しています。

[f4b313f733] Aaron Patterson 2024-07-03 01:29:23 UTC

組み込みメソッド Integer#downto の実装を ruby 実装にして Enumerator を返す必要がある時だけ Primitive.cexpr! を使って C 実装を利用するようにしています。

[7fe5f0a1d0] Stan Lo 2024-07-03 17:17:38 UTC

irb の組み込みコマンドに cd をしています。これはディレクトリの移動ではなくて irb の self に相当するオブジェクト(コンテキスト)を切り替えるものです。このコマンドは昔からあったような気がするけど消えてたのかな? https://github.com/ruby/irb/pull/971

[4c9134d2b2] Aaron Patterson 2024-07-03 16:45:29 UTC

組み込みメソッド Array#select の実装を ruby 実装にしています。この手のメソッドはブロックを呼んでいるあいだに receiver の配列のサイズが変わった時のことを考慮する必要があるのでそのあたりは C の実装を呼んでいます。

[f88841b8f3] Peter Zhu 2024-07-03 18:40:05 UTC

GC の実装の分離の際に ASAN を有効にした時にビルドエラーになっていたようで修正しています。

[05f840d641] Peter Zhu 2024-07-03 18:44:31 UTC

gc.c の未使用な関数 obj_info_basic() を削除しています。

[6ac05ddb8a] Peter Zhu 2024-07-03 18:45:01 UTC

gc.c の未使用な関数 gc_raw_obj_info_basic() を削除しています。

[b974c84606] Aaron Patterson 2024-07-03 18:40:56 UTC

Array#select と同様に Array#map の実装も ruby 実装に移植しています。

[f5dfadf38b] Burdette Lamar 2024-07-03 20:00:00 UTC

Integer#floor の rdoc 用コメントの変更とサンプルなどを追加しています。 https://github.com/ruby/ruby/pull/11077

[b160a78d6b] Alan Wu 2024-07-03 23:10:57 UTC

YJIT の Rust 実装の TODO コメントの削除など。

[d9398ac430] Vít Ondruch 2024-07-03 23:37:41 UTC

a60831f9b6ce7ab7bddc4cb32a04b2bb2e987c0d で導入した Fiber 用の coroutine 実装の amd64 版で cet.h というヘッダを利用するところを defined(__OpenBSD__) で判定していたのを defined(__CET__) で判定するよう変更しています。 https://github.com/ruby/ruby/pull/11081

[70be2f4731] "dependabot[bot]" 2024-07-04 02:20:42 UTC

GitHub Actions の workflows で利用している ruby/setup-ruby アクションのバージョンを更新しています。

[0fe024d048] Nobuyoshi Nakada 2024-07-04 01:19:10 UTC

f4b313f7338f5fbe37f73aae29f70aeb474f7f5b の Integer#downto の ruby 実装への変更時に戻り値が nil になってしまっていたのを self を返すよう修正しています。

[127221d873] Hiroshi SHIBATA 2024-07-03 02:33:03 UTC

rubygems のテストから S3 を remote として使うテスト? を別ファイル/別テストクラスに分離しています。

[f6aa774a14] Hiroshi SHIBATA 2024-07-03 03:28:04 UTC

同じく rubygems のテストからローカルのサーバーを remote とするテストを別ファイル/テストクラスに分離しています。

[7e12b5e2ac] Hiroshi SHIBATA 2024-07-03 03:43:09 UTC

同じく rubygems のテストで f6aa774a14a4170ade49101e7bcc213338a61a5f で分離したローカルのサーバーを remote とするテストをさらにそれが http か https かで分離しています。

[b3e53495bb] Hiroshi SHIBATA 2024-07-03 04:19:49 UTC

7e12b5e2acc87fb670d0525955a2fb18664bdb31rubygems のテストの分離後に不要になった冗長な実装などを削除しています。

[0cb82a810d] Hiroshi SHIBATA 2024-07-03 04:36:06 UTC

rubygems のテストでローカルの https サーバーを使うテストで webrick を利用していたのを拡張ライブラリ socket や openssl の TCPServer や OpenSSL::SSL::SSLServer を直接使う実装に置き換えています。

[6a2c799761] Hiroshi SHIBATA 2024-07-03 06:46:53 UTC

0cb82a810d1e8dc1a3d6c9cead1037ee63b149bc と同様にrubygems のテストでローカルの http サーバーを使うテストで webrick を利用していたのを拡張ライブラリ socket の TCPServer を利用するように書き換えています。

[16e1565dec] Hiroshi SHIBATA 2024-07-03 06:52:49 UTC

rubygems のテストでダミーのサーバーの実装で zlib を利用した gzip の展開処理が不要になったみたいで削除しています。

[2cd270aecc] Hiroshi SHIBATA 2024-07-03 06:56:43 UTC

同じく rubygems のテストで使うダミーサーバーの実装で YAML への依存も不要になったので削除しています。

[318af23baa] Hiroshi SHIBATA 2024-07-03 06:57:57 UTC

rubygems のテストで不要な一時的なローカル変数の代入を削除するリファクタリング

[7e69d74729] Hiroshi SHIBATA 2024-07-03 07:03:50 UTC

rubygems のテストの後始末漏れを修正しています。

[ba4495d75a] Hiroshi SHIBATA 2024-07-03 07:09:21 UTC

rubygems のコーディングスタイルの修正。

[478ada0e2b] Hiroshi SHIBATA 2024-07-03 07:47:07 UTC

rubygems のローカルの https サーバーを使うテストでダミーサーバーの実装で例外の捕捉を OpenSSL::SSL::SSLServer#accept の呼び出し部分にかかるように rescue 節を移動しています。しかし Thread 内の rescue はそれはそれでいるんじゃないかな。