ruby-trunk-changes r39767 - r39784

今日は主に sys/time.h を include する変更をしていました。ヘッダの include ひとつでもこれだけの変遷が……。

headius:r39767 2013-03-16 01:55:43 +0900

r39711 のぶんの ChangeLog を追記しています。

svn:r39768 2013-03-16 01:55:48 +0900

version.h の日付更新。

naruse:r39769 2013-03-16 02:50:30 +0900

39766 で Time のオブジェクトに再度 initialize を呼ぶのは禁止されたので initialize_copy を呼ぶテストも削除しています。

kosaki:r39770 2013-03-16 06:26:36 +0900

r39686 で thread_pthread.c に追加した配列サイズを計算する ARRAY_SIZE() を numberof() という名前に変更しています。

kosaki:r39771 2013-03-16 14:06:32 +0900

configure.in の _FORTIFY_SOURCE マクロの定義をコンパイルオプションに追加する部分にコメントを追加しています。

kosaki:r39772 2013-03-16 14:06:47 +0900

configure で struct timeval が存在するかチェックするようにしています。そして存在する時だけ sys/time.h を include するようにしています。

kosaki:r39773 2013-03-16 14:07:02 +0900

r39772 の続き、include/ruby/missing.h で struct timespec の定義部分でも必要に応じて sys/time.h を include するようにしています。

kosaki:r39774 2013-03-16 14:07:14 +0900

include/ruby/missing.h の __syscall の定義を io.c に移動しています。
また sys/type.h の include を include/ruby/intern.h に移動しています。
ML 番号が間違ってるみたいですね。

kosaki:r39775 2013-03-16 14:07:28 +0900

_FORTIFY_SOURCE が定義されていると select(2) に渡す fdset の file descriptor が 1024 以上のときに glibc が誤ったチェックをしてエラーにしてしまうため、thread.c では _FORTIFY_SOURCE を undef しています。

nobu:r39776 2013-03-16 16:28:20 +0900

r39687 で rb_update_max_fd() を atomic 操作にしたからだと思いますが open している最大の fd を管理する max_file_descriptor を rb_atomic_t に変更しています。

nobu:r39777 2013-03-16 16:28:32 +0900

r39772 あたりの sys/time.h の include の変更に関連して mingw でのビルドエラーに対処するため "time.h" も include するようにしています。

nobu:r39778 2013-03-16 17:05:45 +0900

拡張ライブラリ io/console で未使用の変数の警告を除去。

nobu:r39779 2013-03-16 23:48:33 +0900

これも r39772 あたりからの変更の追随だと思いますが mswin 版のビルドのために win32/Makefile.sub が生成する config.h に time.h と struct timeval の存在を指定するマクロを追加しています。

nobu:r39780 2013-03-16 23:48:35 +0900

Bignum の大きな桁の数を to_s するあいだに割り込みを受け付けるかどうかのテストを専用の assert メソッドとマージして、割り込みするタイミングがなかった(早く to_s が終わってしまう)と skip するようにしています。

nobu:r39781 2013-03-17 00:16:32 +0900

r39772 および r39777 の再修正。 include/ruby/missing.h で sys/time.h を include する条件をいじっています。 Linuxglibc の不具合を回避するため sys/time.h を include するのを避けているそうですが、r39783 でこれは消されています。

svn:r39782 2013-03-17 00:16:36 +0900

version.h の日付更新。

kosaki:r39783 2013-03-17 00:58:25 +0900

r39781 のうち defined(__linux__) の条件は削られています。

kosaki:r39784 2013-03-17 02:40:16 +0900

拡張ライブラリ date の ext/date/date_core.c で sys/time.h を include するようにしています。 gettimeofday() の宣言のため。