ruby-trunk-changes 2022-06-02

今日は YJIT の不具合修正、Bignum の乗算の不具合修正などがありました。

[9d18661e1d] Noah Gibbs 2022-06-01 14:22:08 UTC

YJIT のコード生成実装でオペランドなどのオブジェクトのクラスが前提を満たす時の最適化で T_STRING の時にクラスが String じゃなくても(String を継承したサブクラス)最適化してしまっていた不具合を修正しています。 https://github.com/ruby/ruby/pull/5969

[689b5ae752] Nobuyoshi Nakada 2022-05-27 02:27:15 UTC

defs/gmake.mk から YJIT 関連のルールを yjit/yjit.mk というファイルに分離して include で取り込むようにしています。

[f35c5a2856] git 2022-06-02 01:13:03 UTC

version.h の日付更新

[9108db961d] Nobuyoshi Nakada 2022-05-09 08:15:59 UTC

bignum.c の Bignum の乗算の実装でバッファを確保しなおすかどうかの判定の計算を修正しています。確保が必要なのにしてないケースがあったみたいです。

[b96a3a6fd2] Nobuyoshi Nakada 2022-06-02 06:32:00 UTC

0de1495f358e9b892dfa63d4b74f59b1d2903703 および 0c36ba53192c5a0d245c9b626e4346a32d7d144eGC.compact 関連のメソッドの実装を C 実装に戻して GC.compact がサポートされてない環境で respond_to? で判定できるようにするため rb_f_notimplement() を使うようにしてたもののうち GC.verify_compaction_references はまた ruby 実装にして、compaction がサポートされない環境でのみ C の rb_define_singleton_method() によるメソッド定義をするようにしています。 [ruby-core:108543] [Bug #18779]

[af90433876] Nobuyoshi Nakada 2022-06-02 07:03:55 UTC

ruby 実装の組み込みメソッド定義の関数のために引数の数ごとに関数の prototype 宣言をしていたのを関数ポインタの型の typedef として定義して b96a3a6fd2093e1dbea5491c002da515652dd347 で rb_f_notimplement() を渡すところで複雑な関数型へのキャストを型名を使えるようにしています。

[1d924ae410] David Rodríguez 2022-06-02 08:31:34 UTC

bundler のテストに消し忘れの puts が残ってたのを削除しています。