ruby-trunk-changes 2019-09-22

今日は Module#class_variables の不具合修正や Kernel#Complex(), Kernel#BigDecimal(), Kernel#Pathname() などに変換が不要なときオブジェクトをそのまま返すようにする変更などがありました。

[7470f96565] Jeremy Evans 2019-08-09 23:44:43 UTC

Module#class_variables を Class/Module の singleton class に対して使うと、include している Module のクラス変数が漏れてくる不具合を修正。クラス変数をもつ Module を extend するとその Class/Module の singleton_class にもクラス変数が見えてしまうという問題で、一瞬これ仕様じゃないかな? と思いましたが参照はできない(class_variable_get では取得できない)ということで class_variables のみの不具合のようでした。 [ruby-core:54463] [Bug #8297]

[2e551356a7] Jeremy Evans 2019-08-07 16:01:33 UTC

Kernel#Complex(), #BigDecimal(), #Pathname() などの大文字で始まるオブジェクトの変換用メソッドで引数が元から変換したいクラスのインスタンスだったら変換処理を呼ばずそのオブジェクトをそのまま返すようにしています。 [ruby-core:50596] [Bug #7522]

[c020fd6aa8] git 2019-09-21 23:10:56 UTC

version.h の日付更新

[a0ce0b6297] Kazuhiro NISHIYAMA 2019-09-22 01:11:06 UTC

.github/workflows/draft-release.yml の make install と ruby -v の実行に if: always() というコマンド? を追加しています。2.4 ブランチで make check は失敗することがわかっているので、エラー時にもその後のこれらの処理を実行させようということだと思います。

[b4c328bebc] Yusuke Endoh 2019-09-22 02:55:00 UTC

2e551356a7a6e74ba07283e000ff16f5d1ea6506 で追加したテストで deprecated になって警告が出るようになった BigDecimal.new が使われてたので BigDecimal() を使うように修正しています。

[28eefb33c8] Yusuke Endoh 2019-09-22 07:21:26 UTC

rb_st_copy() という関数は常に struct rb_classext_struct の iv_tbl にセットするために使われているので、rb_iv_tbl_copy() という名前に変更して、関数内で iv_tbl へのセットまで含めて行なうようにリファクタリングしています。

[2272efa463] Yusuke Endoh 2019-09-22 07:35:50 UTC

st.c の st_add_direct_with_hash() を static inline 関数として宣言するように変更しています。 8f675cdd00e2c5b5a0f143f5e508dbbafdb20ccd の Transient Heap 対応時にうっかり公開関数にされてしまっていたようです。