ruby-trunk-changes 2020-03-07

今日は標準添付ライブラリ prime の不具合修正などがありました。

[e79fc05a4c] Jeremy Evans 2019-08-11 20:14:38 UTC

Prime に Module#include? を呼び出すと無限ループ状態に陥る(おそらく Prime に Enumearble が include されていて、Prime#each が素数をどこまでも数え上げるため)のを回避するため Prime#include? メソッドを定義して引数が Integer の時は prime? に委譲して、Module だった場合は Module#include? を UnboundMethod を取り出して bind することで呼ぶようにして回避しています。 [ruby-core:64546] [Bug #10167]

[f236f6082c] Marcus Stollsteimer 2019-12-25 19:01:03 UTC

e79fc05a4ca672816c6b737d00a85fea4aa6c2b7 の Prime#include? の rdoc 用コメントの文法や typo の修正。

[e92fbaf609] Marcus Stollsteimer 2019-12-27 18:47:04 UTC

Prime クラスの rdoc 用コメントの typo 修正。

[baaf681570] Marcus Stollsteimer 2019-12-27 19:19:37 UTC

標準添付ライブラリprime の rdoc 用コメントのサンプル追加や文法の修正。

[0256e4f0f5] Yusuke Endoh 2020-03-06 12:32:42 UTC

Thread を新規作成する時に sigaltstack を確保するために xmalloc() を呼び、そこでGCが発生してしまうとまだ ruby のThread として動くための準備が完了していないので abort が発生してしまうという不具合があったので、このメモリ領域の確保を rb_register_sigaltstack() の中から rb_allocate_sigaltstack() にまで釣り出して引数で渡すようにしています。

[87ad5ea729] Takashi Kokubun 2020-03-06 17:38:55 UTC

FreeBSD 12 と RHEL 8 では MJIT のテストは skip するようにしています。

[44462d3206] git 2020-03-06 17:39:19 UTC

version.h の日付更新

[4c019f5a62] Koichi Sasada 2020-03-06 18:32:15 UTC

Hash の要素数が少ない時のテーブルによる実装になっているものに hash メソッドを呼ぶと st_table による実装に切り替えられる場合があり(なんでだっけ)、その場合 array hash 向けの処理の途中で st_table 向けの実装に切り替えないといけないことがあるので、RHASH_AR_TABLE_P() をチェックして分岐するようにしています。 [ruby-core:97383] [Bug #16676]

[c3584dfacc] Koichi Sasada 2020-03-06 18:55:54 UTC

4c019f5a626523e99e2827ed917802e3097c380d の変更によりすでに st_table 実装に切り替わってる Hash オブジェクトに対して ar_try_convert_table() を呼ぶ場合がでてきて、この中で array hash 実装であることをチェックする assertion のあるマクロが使われているので、その前に RHASH_AR_TABLE_P() でチェックして既に st_table だったらすぐ return するようにしています。

[f991340e07] Jeremy Evans 2020-03-06 21:03:58 UTC

Kernel#global_variables の rdoc 用コメントと doc/syntax/miscellaneous.rdoc の defined? の説明に正規表現のマッチ後の thread local な特殊変数の扱いについて追記しています。global_variables は $1 とかは含まないんですね。 [ruby-core:69731] [Bug #11304]

[9745e90197] Takashi Kokubun 2020-03-07 04:19:56 UTC

87ad5ea729735ff6b8f1ac0bb3aad2aedd6f716e の追加で FreeBSD 12 と RHEL 8 での MJIT のテストの skip を test/lib/jit_support.rb の JITSupport.supported? メソッドの実装に移動することで全ての MJIT を使うテストに影響するようにしています。

[fcd605020b] Kazuhiro NISHIYAMA 2020-03-07 04:49:28 UTC

rubyspec のテストの説明文の typo 修正。

[65aa68b009] Takashi Kokubun 2020-03-07 07:46:55 UTC

AppVeyor の設定にエラー時の Slack への通知を追加しています。

[108f7536b3] Nobuyoshi Nakada 2020-03-07 07:41:19 UTC

標準添付ライブラリ net/smtp でレスポンス行を chomp してからsplit してたのを chomp を削っています。コミットログによると split を無引数、または空白文字を渡して呼ぶと自動的に末尾の改行コードを取り除くので不要だということ。そういえばそんな仕様があったような気もする。ほかにもテストや rubyspec でも同様の変更をしています。

[b9d45d3ac0] Takashi Kokubun 2020-03-07 08:16:21 UTC

.travis.yml にもエラー時の Slack? (secure 化されてて URL はわからない)通知を追加しています。

[f9f3510e64] Takashi Kokubun 2020-03-07 08:34:41 UTC

GitHub Actions の各種アクションにも新規に Slack 通知を追加しています。通知先を増やしてるのかな。

[ada2f71c70] 卜部昌平 2020-03-07 09:58:58 UTC

e91c39f1c0f7d5e670266d9593d533fd444957f6 で safe level の操作の C API を消した時に rb_check_safe_obj() の宣言を include/ruby/ruby.h から削除しています。

[8602216746] Hiroshi SHIBATA 2020-03-07 10:57:28 UTC

ext/fiddle/extlibs の同梱版 libffi のダウンロード元を GitHub に変更しています。