ruby-trunk-changes 2020-02-09

今日は起動時に GC が動いてしまうことによる SEGV や s390x 環境でのスタックオーバーフロー検出の修正などがありました。

[97b583d68b] aycabta 2020-02-08 17:52:47 UTC

lib/reline/ansi.rb のキーコードとキーの対応をつける RAW_KEYSTROKE_CONFIG の順序とかを変えている、のですかカーソルキーのものを同じキーで繰り返し書いてるのは重複は省かれるから結果的には問題ないと思いますがわざとですかね? 警告とか出そう。

[acb9b73495] git 2020-02-08 17:56:05 UTC

version.h の日付更新

[2173ae7801] Yusuke Endoh 2020-02-09 02:04:53 UTC

File.utime の引数に非常に大きな整数で表現される Time オブジェクトを渡した時に File.mtime/File.atime で返される日時がファイルシステムによっては truncate されるのでそれを考慮した assertion に修正しています。

[92c86e39de] Nobuyoshi Nakada 2020-02-09 03:12:07 UTC

spec/mspec の Kernel#warn の上書きをしているところで ruby のバージョンが 2.4 系であることをチェックしている部分がありましたが、サポートしているのが 2.4 以降のみなので削除しています。

[a28c166f78] Yusuke Endoh 2020-02-09 03:53:18 UTC

s390x アーキテクチャで machine stack のオーバーフローチェックにひっかかる範囲を大きめに設定しています。 s390x の CI で SystamStackError 発生したもののその後の処理で SEGV してしまう事象があったようです。

[e077a910b6] Kazuhiro NISHIYAMA 2020-02-09 04:39:24 UTC

標準添付ライブラリ matrix の ExceptionForMatrix::ErrOperationNotDefined という例外クラスのメッセージでシングルクオートをバックスラッシュ2つでエスケープっぽくしてたのをやめています。2つなのでバックスラッシュそのものを入れる状態になってた。

[b7e0831e8f] Burdette Lamar 2020-02-09 06:59:55 UTC

ENV の各メソッドの rdoc 用コメントにサンプルや説明を追記しています。

[c47cd4be28] Nobuyoshi Nakada 2020-02-09 06:43:15 UTC

enumerator.c の arith_seq_float_step_size() というのは ruby_float_step_size() と同一なので削除して同じ関数を使うようにしています。

[aeaf0dc555] Nobuyoshi Nakada 2020-02-09 07:56:40 UTC

rb_gc_disable() のメイン処理部分を rb_objspace_t を引数として受け付ける rb_objspace_gc_disable() として切り出して objspace を持ってる関数からはこちらを呼び出すようにリファクタリングしています。

[0f05b234fb] Nobuyoshi Nakada 2020-02-09 07:41:56 UTC

環境変数 RUBY_THREAD_VM_STACK_SIZE をとても大きくセットすると SEGV してしまうという不具合の修正。修正内容としては Init_vm_objects() の最後まで GC を実施しないようにするというものです。まだ準備ができてないのに VM stack 確保のためのメモリが足りずに GC 起動してしまって SEGV してたってことですかね。 [ruby-core:97102] [Bug #16616]