ruby-trunk-changes r58664 - r58687

今日はメモリ確保の関数群のリファクタリングと rubyspec の Windows でのテスト対応などがありました。

nobu: r58664 2017-05-11 23:28:37 +0900

gc.c の objspace_xmalloc2() で objspace_xmalloc0() の引数に渡す rb_objspace_t を rb_objspace に固定していたので引数に渡されたポインタをそのまま渡すように修正しています。

nobu: r58665 2017-05-11 23:28:38 +0900

gc.c の wmap_aset() でメモリ確保の時に不要なサイズチェックを省くため ruby_xmalloc2() のかわりに ruby_xmalloc0() を呼ぶようにしています。

stomar: r58666 2017-05-12 03:56:32 +0900

Symbol#match, Symbol#match? の rdoc 用コメントで省略可能な第2引数について追記しています。 https://github.com/ruby/ruby/pull/1606

svn: r58667 2017-05-12 03:56:33 +0900

version.h の日付更新。

stomar: r58668 2017-05-12 03:58:27 +0900

r58666 に続いて Symbol#match と Symbol#match? それに Symbol#length の rdoc コメントに String のメソッドのドキュメントと同様の書きかたにしています。

stomar: r58669 2017-05-12 03:59:45 +0900

String#match の rdoc 用コメントに第2引数を指定するサンプルを追記しています。

nobu: r58670 2017-05-12 15:19:00 +0900

ruby_vm_run_at_exit_hooks() で ruby_xmalloc() で確保したメモリを free(3) で解放していたのを ruby_xfree() を利用するように修正しています。

usa: r58671 2017-05-12 15:39:43 +0900

rubyspec の C 拡張をビルドするためのヘルパーで Windows 向けのコンパイルオプションの修正をしています。

usa: r58672 2017-05-12 15:48:53 +0900

make love のターゲットで make check のかわりに make exam を実行するようにしています。 test-rubyspec を含めるようにしたんですね。

nobu: r58673 2017-05-12 16:48:05 +0900

objspace_xmalloc0() と objspace_xcalloc() で共通のメモリ使用量の加算処理を objspace_malloc_fixup() に移動して共有させています。

nobu: r58674 2017-05-12 16:48:08 +0900

gc.c の objspace_xmalloc() からサイズのチェックを ruby_xmalloc() に移動して、objspace_xmalloc0() などはチェックしないようにしています。また objspace_xmalloc2() は削除しています。また objspace_xcalloc() はサイズと要素数を受け取るようにしていたのを、まとめたサイズを受け取るように引数を変更しています。

nobu: r58675 2017-05-12 17:10:36 +0900

spec/rubyspec/optional/capi/spec_helper.rb に古い ruby のバージョン用の分岐があったのを削除しています。ruby 本体に取り込んだ rubyspec と ruby/spec のリポジトリは同期はさせないんですかね。

usa: r58676 2017-05-12 17:11:35 +0900

rubyspec の Process::Status#pid のテストで Windows 環境では pid が期待と異なるためエラーになるので skip するようにしています。

usa: r58677 2017-05-12 17:45:20 +0900

rubyspec の WIN32OLE のテストで Desktop のパスを得ると環境によって「デスクトップ」などのようにローカライズされるので System32 をテストのために使うようにしています。

usa: r58678 2017-05-12 18:17:10 +0900

spec/rubyspec/optional/capi/kernel_spec.rb の fork を利用したテストを skip しています。

usa: r58679 2017-05-12 18:36:57 +0900

rubyspec の C API テスト用の拡張ライブラリのソース spec/rubyspec/optional/capi/ext/thread_spec.c で unistd.h を include する時に HAVE_UNISTD_H をチェックするようにしています。これも Windows でビルドできるようにするためでしょうね。

shugo: r58680 2017-05-12 18:39:23 +0900

r58549 で標準添付ライブラリ net/imap の Net::IMAP.new に read_timeout オプションを追加してデフォルトを 60秒に設定したのを revert しています。 Net::IMAP#get_response を受信用 Thread で呼んで待ち続けるような用途でエラーになるのを避けるためみたいです。

usa: r58681 2017-05-12 18:46:45 +0900

win32/Makefile.sub で config.h に NEGATIVE_TIME_T を定義するようにしています。これも rubyspec 対策かな?

usa: r58682 2017-05-12 19:05:48 +0900

rubyspec の C API テスト用の拡張ライブラリで fcntl(3) のための定数 F_GETFL の定義や ioctl() のための FIOBIO の有無をチェックするようにしています。 Windows でのテスト対策ですね。

usa: r58683 2017-05-12 19:10:15 +0900

rubyspec の Socket でない IO の nonblocking IO のテストを skip するようにしています。

usa: r58684 2017-05-12 19:23:53 +0900

rubyspec の C API 用の拡張ライブラリで long long とポインタのサイズが同じ場合に String#hash の戻り値を Fixnum の範囲に収まるように型キャストを追加しています。

usa: r58685 2017-05-12 19:31:52 +0900

math.c の tgamma() の代替実装 ruby_tgamma() の定義を __MINGW32__ の時に定義していたのを _WIN32 で判定するようにしています。 mswin の時も組み込みの tgamma() の実装に問題があったようです。

usa: r58686 2017-05-12 19:37:41 +0900

rubyspec の Time#gmt_offset のテスト部分を Windows の時に skip するようにしています。

usa: r58687 2017-05-12 20:49:05 +0900

Windows での ENV の環境変数の文字列の Encoding に Encoding.default_internal を影響させるようにしています。