ruby-trunk-changes 2023-04-15

今日は YJIT の不具合修正、ObjectSpace::WeakKeyMap のキーに Float も禁止する変更(修正?)、標準添付ライブラリ reline の Reline.add_dialog_proc で登録したコールバックを削除できるようにする変更などがありました。

[d83e59e6b8] Jimmy Miller 2023-04-14 18:21:29 UTC

YJIT の Rust 実装の enum CodegenStatus から CantCompile を削除してかわりに None で表現するように変更しています。 https://github.com/ruby/ruby/pull/7717

[4501fb8b46] Takashi Kokubun 2023-04-14 21:00:10 UTC

YJIT の Rust 実装で side exit のコード生成する処理を切り出すリファクタリング? https://github.com/ruby/ruby/pull/7712

[31e67a476f] Alan Wu 2023-04-14 19:04:55 UTC

YJIT の VM 命令 setinstancevariable のコンパイル時に rb_ensure_iv_list_size() 関数の呼び出しする時に jit_prepare_routine_call() の呼び出しが漏れていた不具合を修正しています。 [ruby-core:113260] [Bug #19601]

[0b95cbcbde] Alan Wu 2023-04-14 20:40:58 UTC

31e67a476f2262e01a0829e8ab5e6d8a97e0724e の YJIT の setinstancevariable 命令の修正で jit_prepare_routine_call() の呼び出し後の asm.spill_temps() が冗長になっていたのでこちらは削っています。 [ruby-core:113260] [Bug #19601]

[87c7de55e0] Alan Wu 2023-04-14 20:49:38 UTC

bootstraptest の YJIT のテストが RJIT 有効時に通らないとのことで実行除外するようにしています。

[45c6b58768] Takashi Kokubun 2023-04-14 23:49:44 UTC

YJIT の side exit 用のカウンタの一部はカウンタがなかったのを全ての side exit の理由のカウンタを追加しています。 https://github.com/ruby/ruby/pull/7720

[a1db5ecd93] Jean Boussier 2023-04-14 09:28:41 UTC

rubyspec に ObjectSpace::WeakKeyMap のテストを追加しています(リトライ)。 また WeakKeyMap#[]= のキーに Float が渡された時も ArgumentError 例外を発生させるようにしています。 flonum で即値だからかな。 [ruby-core:107190] [Feature #18498]

[9a1c737dee] git 2023-04-15 00:10:49 UTC

a1db5ecd935ef1fc95ad8844f33f293fe22bfdf5 で追加した rubyspec のファイルの末尾に改行がなかったものを修正しています。

[5944a31614] Nobuyoshi Nakada 2023-04-15 02:48:11 UTC

rb_objspace_each_objects() 関数のコメントのサンプルコードで rb_objspace_internal_object_p() を利用するように記述を修正しています。

[607cd24128] Nobuyoshi Nakada 2023-04-15 02:50:54 UTC

hash.c と vm.c の関数定義のスタイル修正のみ。

[34f484d233] Nobuyoshi Nakada 2023-04-15 03:44:08 UTC

common.mk の $(arch)-fake.rb の依存関係に revision.h を追加しています。

[19aa30d5d5] tomoya ishida 2023-04-15 09:31:56 UTC

標準添付ライブラリ reline の Reline.add_dialog_proc メソッドの第2引数に登録する Proc オブジェクトを渡すかわりに nil を渡した時に ArgumentError ではなく登録済みのコールバックを削除する挙動をするように変更しています。 https://github.com/ruby/reline/pull/532