ruby-trunk-changes r33848 - r33872

今日はたくさんコミットがありました。主にコンパイルオプションの追加とテストの変更で本体の変更はあまりありませんでした。

naruse:r33848 2011-11-26 20:06:53 +0900

r33701 で net/http.rb の文字列の配列を Symbol の配列にしたのに、結局文字列に埋め込んで使っていてあまり意味がなかったので、"@" もつけて Symbol にしたものを用意しておくようにしています。

naruse:r33849 2011-11-26 20:44:45 +0900

Net::HTTP に渡された URI オブジェクトが https だった時にも http で接続しようとしてしまうので SSL 接続するように対応しています。 [ruby-core:40665] [Bug #5545]

emboss:r33850 2011-11-26 23:04:52 +0900

OpenSSL::Engine のテストで load した engine の後始末を teardown メソッドで一貫して実行するようにしています。

akr:r33851 2011-11-27 00:18:05 +0900

IO.copy_stream で再生するファイルの permission が 0600 → 0666 に変更しています。 [ruby-core:40865]

svn:r33852 2011-11-27 00:18:09 +0900

version.h の日付更新。

naruse:r33853 2011-11-27 04:59:11 +0900

r33848 で Net::HTTP::SSL_ATTRIBUTES を "@" つきにしたのですが、元のシンボルのまま Hash のキーとして使うところもあったので、 SSL_IVNAMES という別の定数を用意するように分離しています。

naruse:r33854 2011-11-27 04:59:13 +0900

r33840 で --no-undefined を追加すると FreeBSD でエラーになるため、FreeBSD は除外するようにしています。

naruse:r33855 2011-11-27 05:03:32 +0900

r33849 の修正のローカル変数の typo 修正。

naruse:r33856 2011-11-27 07:49:28 +0900

    • no-undefined でエラーになるのは DragonFly もだったらしいので除外するプラットフォームに追加しています。

naruse:r33857 2011-11-27 12:54:09 +0900

Linux での IO#ioctl のテストで /dev/tty を開いているので、存在しない場合にスキップするようにしています。

kosaki:r33858 2011-11-27 13:30:44 +0900

r33838 で --no-undefined のチェックを変更したら Mac OS X で configure が syntax error になってしまったので書き方を変更。また -Xlinker のかわりに -Wl, を使うようにしています。個人的にはこっちのほうが馴染みがありますがどう違うのかな……。 [ruby-core:41316]

kosaki:r33859 2011-11-27 13:55:27 +0900

r33832 と r33833 で FILE 構造体のメンバの調査を configure でするのをやめるようにしたのを revert しています。 win32.c でまだ利用していたとのこと。ぐぬぬ

naruse:r33860 2011-11-27 14:20:31 +0900

Psych.dump で Object がコンテナに複数登場する場合など object_id の参照でダンプする時のテストで、id が負の整数になることがあるのを考慮していなかったのでテストを修正。

nobu:r33861 2011-11-27 15:22:00 +0900

ext/tk/tcltklib.c の未使用関数(eventloop_sleep) をコメントアウトしています。

kosaki:r33863 2011-11-27 16:15:04 +0900

コンパイラgcc だった時のコンパイルオプション -fstack-protector の追加は XCFLAGS だけでなく XLDFLAGS (リンク時のオプション)にも追加するようにしています。

nobu:r33864 2011-11-27 17:24:19 +0900

insns.def で未使用の引数の警告除去のために val = val; のように自己代入する文を書いていたのが clang で警告が出るそうなので (void)val; に変更しています。

nobu:r33865 2011-11-27 17:24:26 +0900

USE_SIGNAL_THREAD_LIST が偽の時に未使用の inline 関数が定義されているために警告が出ているのを関数マクロに変更しています。

nobu:r33866 2011-11-27 17:24:29 +0900

configure.in の行頭の空白除去とインデント修正。

nobu:r33867 2011-11-27 17:26:54 +0900

さらに configure.in の行頭の空白除去。

nobu:r33868 2011-11-27 18:25:38 +0900

コンパイラgcc だった時の -fstack-protector の追加を DLDFLAGS にもするようにしています。 [ruby-core:41317] [Bug #5676]

nobu:r33869 2011-11-27 18:54:12 +0900

DLDFLAGS に -fstack-protector を含めるために XLDFLAGS を継承するように Makefile.in を変更しています。 [ruby-core:41317] [Bug #5676]

nobu:r33870 2011-11-27 19:09:11 +0900

そして mingw では -fstack-protector を付加しないようにしています。

kosaki:r33871 2011-11-27 21:06:10 +0900

Linux では _FORTIFY_SOURCE を非0に定義していると fwrite(3) の返り値を利用していない(チェックしていない)と警告を出してくれるようになっているので、チェックを追加したり変数で受けるようにしたりしています。

kosaki:r33872 2011-11-27 21:27:00 +0900

コンパイラgcc の時に -fno-strict-overflow オプションをつけるようにしています。これは符号なし整数型のオーバフローが警告になるのを抑制するためだそうです。ちなみに最近知ったのですが、規格的には符号なし整数がオーバフローした時の動作は未定義なので、未知のコンパイラではなにがおきるかわからないです。