ruby-trunk-changes r64622 - r64630

今日は MinGW 向けのテストの修正や Random の乱数取得で古い arc4random_buf() の実装の利用を避ける変更などがありました。

kazu: r64622 2018-09-03 22:52:09 +0900

標準添付ライブラリ net/imap で String#unpack して最初の要素だけ取り出してるところを String#unpack1 を使うようにリファクタリングしています。

nobu: r64623 2018-09-04 09:12:49 +0900

r64582 で rubygemsrubygems/installer.rb で RbConfig::TOPDIR が nil の時のサポート追加していましたが RbConfig::CONFIG の "RUBY_INSTALL_NAME" と "EXEEXT" で実行ファイルのファイル名を構築して bindir 配下にこのファイルが存在するかをチェックすることで bindir がインストール先と一致しているかをチェック? するように再修正しています。

svn: r64624 2018-09-04 09:12:50 +0900

version.h の日付更新。

shyouhei: r64625 2018-09-04 10:42:37 +0900

r54912 で fill_random_bytes_syscall() という関数で可能なら arc4random_buf() を使って乱数生成するようにしていましたが、OpenBSD/NetBSD/FreeBSD のそれぞれ指定されたバージョン以降の場合のみ有効にして、それ以外の時は -1 を返すように定義しています。古い実装に問題があったそうです。 fill_random_bytes_syscall() が -1 を返したらどうなるんだっけ、と少し読んでみると fill_random_bytes_urandom() で /dev/urandom から読み出す方法に fallback するようでした。 [ruby-core:88712] [Bug #15039]

nobu: r64626 2018-09-04 11:18:51 +0900

appveyor.yml の build matrix の書きかたを変えています。読みかたがよくわからないけど、コメントからすると冗長な組み合わせを削っているみたいです。

nobu: r64627 2018-09-04 11:19:39 +0900

appveyor.yml の msys2 向け修正?

nobu: r64628 2018-09-04 12:41:44 +0900

rubyspec の Encoding::Converter.search_convpath のテストで Encoding.name_list が期待した動作をしない? ことに対する対処みたいなのを入れています。チケットのほうをみてもこの修正の意味がよくわからないけど MinGW でのビルド時の対策みたいです。また C API のテスト時に libruby_so の検出方法に mwsin, mingw 時のサポートを追加しています。 https://github.com/ruby/ruby/pull/1945 [ruby-core:88812] [Bug #15060]

nobu: r64629 2018-09-04 14:28:38 +0900

r64628 に続いて MinGW でのテスト失敗の対策で bootstraptest/test_io.rb でも Thread を使ったテストの協調のための方法で Thread#stop? をチェックしてたのを sleep を使う方法に書き換えています。うーん、これは一般的には sleep でやるのは悪手だと思うのですが、どうしてこうしたんだろう…。 https://github.com/ruby/ruby/pull/1945 [ruby-core:88812] [Bug #15060]

nobu: r64630 2018-09-04 17:39:14 +0900

r64620 で MinGW 環境での PRINTF_ARGS() マクロの定義に gnu_printf() という関数名? を使うようにしてましたが、__MINGW_PRINTF_FORMAT というマクロ? をかわりに使うようにしています。またこのマクロを取り込むため? に __USE_MINGW_ANSI_STDIO というマクロも configure 時に定義するようにしています。 [ruby-core:80832] [Bug #13496]