ruby-trunk-changes r64665 - r64673

今日は qsort_s() の対応の再修正や sigaltstack(2) の使えない環境向けの修正などがありました。

nobu: r64665 2018-09-09 21:42:48 +0900

thread.c で gcc-8 での未初期化変数の警告が誤って? 出るのに対処して初期化を追加しています。

nobu: r64666 2018-09-09 21:48:32 +0900

.travis.yml に "travis-" で始まるブランチ名も実行対象に追加しています。

nobu: r64667 2018-09-09 21:48:33 +0900

.travis.yml で gcc-8 を使ったビルドも追加するようにしています。 https://github.com/ruby/ruby/pull/1937

nobu: r64668 2018-09-10 00:46:51 +0900

r64667 の続きで .travis.yml の設定で gcc-8 の追加しましたが、古いバージョンの ruby での rubyspec の実行はさらに別の matrix を追加して Travis-CI の環境に用意されている ruby を使って実行するようにしています。

svn: r64669 2018-09-10 00:46:53 +0900

version.h の日付更新。

usa: r64670 2018-09-10 10:43:10 +0900

r64661 の qsort_s() の環境毎の差異の対応で __MSVCRT__ というマクロを分岐に使ってましたが、そんなマクロはないとのことでかわりに RUBY_MSVCRT_VERSION をチェックするようにしています。なかったのか!

nobu: r64671 2018-09-10 13:21:39 +0900

同じく r64661 の qsort_s(3) を使った ruby_qsort() の実装の再修正で __STDC_VERSION__ も未定義のことがあるので? 結局 HAVE_QSORT_S のチェックだけで qsort_s() を使った実装をするようにしています。Windows 環境で qsort_s() の引数の順序が微妙に違う問題は qsort_r() のマクロとして定義して吸収して、Windows 環境では qsort_r() が存在する場合の実装のほうを使うようにしています。うーむややこしい。 [ruby-core:88899] [ruby-core:88921] [Bug #15091]

nobu: r64672 2018-09-10 13:23:24 +0900

r64671 で #endif が抜けてたのを修正。 [ruby-core:88899] [Bug #15091]

nobu: r64673 2018-09-10 18:35:03 +0900

ruby_signal() で sigaltstack(2) が利用できないプラットフォームのために SA_SIGINFO のチェックを行なわない実装を追加しています。ふーむ、なんとなく defined?(SA_SIGINFO) とかでチェックすればいいような気がするけど USE_SIGALTSTACK で分岐してるのはなぜだろう。