ruby-trunk-changes 2022-10-01

今日は昨日リトライして入った Object Shapes の再度の revert とそれに関連した修正と新規追加された Data の実装の修正、bundler/rubygems の platform 判定の強化などがありました。

[31461c7e0e] Jimmy Miller 2022-09-30 15:14:55 UTC

YJIT の Rust 実装部分に clippy という Rust の linter で指摘された修正を適用しているようです。 https://github.com/ruby/ruby/pull/6476

[641310ce37] tompng 2022-09-27 04:14:42 UTC

irbIRB::RubyLex でヒアドキュメントの構文の処理の不具合を修正しています。

[850cfb021e] Jemma Issroff 2022-09-30 18:04:08 UTC

68bc9e2e97d12f80df0d113e284864e225f771c2 の Object Shapes の変更の vm_getivar() 内の VM_ASSERT() の条件に rb_ractor_shareable_p() に渡す前にオブジェクトが T_OBJECT 型であることを確認するようにしています。

[4d58ee3de0] David Rodríguez 2022-09-28 08:57:54 UTC

bundler の platform 判定で Linux の判定部分をメソッドに切り出すリファクタリング

[8252ea2140] David Rodríguez 2022-09-28 10:12:13 UTC

bundler の platform 判定に Linux の eabi という suffix がついてる場合の対応を追加しています。

[f04d249e83] David Rodríguez 2022-09-29 18:31:23 UTC

さらに bundler の platform 判定で Linux の eabihf という suffix がついているものの対応を追加。

[a44040c9e4] David Rodríguez 2022-09-29 19:47:53 UTC

rubygems の Gem::Platform#=== と Gem::Platform#normalized_linux_version のコメントに bundler にも関連メソッドがあるので消すためにはそっちも対処が必要と注意書きを追加しています。

[0ab0229c11] eileencodes 2022-09-30 19:37:18 UTC

Object Shapes の対応で freeze したオブジェクトの Object#inspect の表示が間違っていたのを修正しています。

[1143fe340a] John Hawthorn 2022-09-30 23:29:10 UTC

9a6803c90b817f70389cae10d60b50ad752da48f の Object Shape の revert の際に YJIT の Rust 実装部分で変数名を誤って戻してしまっていたところがあったので修正しています。

[70538beaa9] John Hawthorn 2022-10-01 00:08:44 UTC

同じく 9a6803c90b817f70389cae10d60b50ad752da48f の Object Shapes の revert の影響で YJIT の Rust 実装が壊れたところを修正しているそうです。

[c767618d4c] Nobuyoshi Nakada 2022-10-01 06:36:01 UTC

ad651925e365ca18645f05b5e9b2eca9cd5721bc の Data クラス追加で Data.members というメソッドを定義していたところはコメントアウトしています。 rdoc のドキュメント化させるためだけに rb_define_method() は書いておくけど実際のメソッドは Data.define で子クラスを作った時にそのクラスに定義しているので Data 自体に Data.members を定義する必要はないため。

[27adf5321e] Nobuyoshi Nakada 2022-10-01 06:58:47 UTC

vm_insnhelper.c に VM_ASSERT() などで条件つきで rb_ractor_shareable_p() を呼ぶところがいくつかあるので ractor_object_incidental_shareable_p() や ractor_incidental_shareable_p() といったマクロに切り出すリファクタリング

[15d3b7fe6d] Nobuyoshi Nakada 2022-10-01 07:14:59 UTC

Data#initialize の実装 rb_data_initialize_m() で引数が 0個だった時に argv[0] にアクセスしてしまうようになっていたのでチェックと早期 return を追加しています。

[56f2fd3bc9] Nobuyoshi Nakada 2022-10-01 07:18:03 UTC

Struct および Data の initialize メソッドの実装で引数チェックして ArgumentError 例外を発生させる時に rb_error_arity() という専用の関数があったのでそれを利用るようにリファクタリングしています。

[88c12a2937] Nobuyoshi Nakada 2022-10-01 09:18:58 UTC

bootstraptest/runner.rb でテストのプログレス表示の "." を折り返した時にインデントをつけるようにしています。