ruby-trunk-changes 2020-07-02

今日は主に Rational の実装の最適化や Integer の一部のメソッドの最適化などがありました。

[29ecce4d72] Nobuyoshi Nakada 2020-05-30 05:59:44 UTC

rational.c の Integer#% メソッドを呼び出してた関数 f_odd_p() を削除して rb_int_odd_p() を直接呼ぶことで代替するようにしています。

[53d2bfd540] Nobuyoshi Nakada 2020-05-30 09:15:31 UTC

rational.c の f_add()、f_lt_p()、f_eqeq_p() などの関数で第1引数が Integer の時にメソッド呼び出しするかわりに直接 C 実装の関数を呼び出すショートカットを追加しています。

[254bed3027] Nobuyoshi Nakada 2020-05-30 09:34:32 UTC

rational.c の nurat_sub() という関数を rb_rational_minus() に改名して static 修飾子をはずして別のソースファイルからも呼べるようにしています。

[49029811d9] Nobuyoshi Nakada 2020-05-30 09:39:56 UTC

254bed302752a401b5fcc3b6c65a9c93711d91d6 で改名した関数 rb_rational_minus() も利用して rational.c の nurat_rationalize() (Rational#rationalize の実装)で f_sub()/f_add() のかわりに直接 rb_rational_minus()/rb_rational_plus() を呼ぶようにしたり、Float から Rationalize への変換で負の時にも precision の指定がきくようにする修正や中間オブジェクトの生成を抑えるようにする変更など。

[bf3f03c925] 卜部昌平 2020-07-02 00:44:23 UTC

Integer の to_i, to_int, ord などの C 実装を呼ぶまでもないメソッドの ruby 実装で builtin 関数呼び出しもなくして直接 ruby だけで実装するようにしています。たしかに。

[08ba5bec2b] git 2020-07-02 05:34:56 UTC

version.h の日付更新