ruby-trunk-changes 2021-01-16

今日はメソッドキャッシュのクリアで GC 回収予定のオブジェクトを参照してしまう可能性があった不具合の修正や io/console の JRuby 対応などがありました。

[5307fab661] Nobuyoshi Nakada 2021-01-15 09:17:48 UTC

標準添付ライブラリ time の Time#rfc2822 の実装で Kernel#sprintf を使ってたのを Time#strtime を使うようにリファクタリングしています。

[f95f85b215] Kenta Murata 2021-01-15 01:03:56 UTC

拡張ライブラリ bigdecimalBigDecimal_DoDivmod() で引数を BigDecimal に変換するのに直接 rb_float_convert_to_BigDecimal()/rb_rational_convert_to_BigDecimal() などの関数を利用するようにリファクタリングしています。

[9d0c5e2754] Kenta Murata 2021-01-15 01:04:48 UTC

拡張ライブラリ bigdecimalBigDecimal_DoDivmod() で 0 の BigDecimal を返すために毎回オブジェクトを作っていたのを static に確保したオブジェクトを使いまわすようにしています。

[b130644584] Kenta Murata 2021-01-15 01:44:45 UTC

拡張ライブラリ bigdecimalBigDecimal_divide() と BigDecimal_DoDivmod() で整数からの BigDecimal の変換の場合に rb_inum_convert_to_BigDecimal() を使うように分岐を追加しています。

[4c4f873fc7] git 2021-01-15 15:15:06 UTC

version.h の日付更新

[a2941d7134] Burdette Lamar 2021-01-15 18:08:01 UTC

Array クラスの rdoc 用コメントにメソッド一覧を追加しています。うーむこれ全部のクラスにつけていくのかな。 https://github.com/ruby/ruby/pull/4062

[e7f1afbccd] Burdette Lamar 2021-01-15 20:25:56 UTC

doc/method_documentation.rdoc のマークアップの修正およびサンプルの評価値の書きかたや call-seq の記法についてのルールなどを追記しています。 https://github.com/ruby/ruby/pull/4065

[0ed71b37fa] Aaron Patterson 2021-01-15 22:14:43 UTC

Class/Module ごとのメソッドキャッシュをクリアする clear_method_cache_by_id_in_class() で引数の klass が既に GC で mark されてなくて回収される予定(Lazy Sweep によりまだ実際に freelist 送りにはなってない)状態でも処理をしてしまって SEGV する可能性があったようなので、rb_objspace_garbage_object_p() で生きてるオブジェクトかチェックして sweep 予定だったら処理しないようにしています。 [ruby-core:102065] [Bug #17536]

[c143a2f947] Nobuyoshi Nakada 2021-01-16 06:05:46 UTC

拡張ライブラリ io/console の gemspec ファイルのバージョンを 0.5.7 に更新しています。

[92da224d22] Nobuyoshi Nakada 2020-01-10 08:19:42 UTC

拡張ライブラリ io/console の gemspec ファイル(gem 名は io-console) に JRuby 向けにコマンドラインオプションに --platform が指定されていたらそれと検出して JRuby 向けに spec の内容を変更する対応を入れています。

[6ab5504fe5] Nobuyoshi Nakada 2020-01-11 02:26:05 UTC

92da224d228be6a38b5e86ea43290e6e5a33df45 で io/console の gemspec に追加した JRuby 対応にさらに spec.files にファイルを追加しています。

[35a047301b] Nobuyoshi Nakada 2021-01-16 05:39:44 UTC

92da224d228be6a38b5e86ea43290e6e5a33df45 で io/console の gemspec 内でコマンドラインオプション --platform の内容を取り出す処理を追加していましたが rubygems 3.2 以降では公式に --platform オプションに対応してるため不要だったそうで削っています。