ruby-trunk-changes r32846 - r32863

今日は Lion での不具合修正、Solaris でのコンパイルエラー等の修正、RubyGems 1.8.7 のマージなどがありました。

mrkn:r32846 2011-08-05 00:06:20 +0900

Mac OS X Lion 10.7 (Lion) では pthread_cond_signal() が EAGAIN を返してくることがあるので thread_pthread.c の native_cond_signal() と native_cond_broadcast でリトライするようにしています。また pthread_cond_??? を直接使っていたところは native_cond_??? を使うようにしています。 [ruby-dev:44342] [Bug #5155]

svn:r32847 2011-08-05 00:06:27 +0900

version.h の日付更新。

nobu:r32848 2011-08-05 07:00:36 +0900

io/console のテストで端末から切り離されたプロセスを作るために Process.daemon を利用するようにしていましたが、Fedora Rawhide では daemon() の第2引数 noclose に非ゼロを渡すと標準入出力を切断しないのと同時に端末の切り離しも行なわれないらしいので、Process.daemon の第2引数に true を渡さずに利用するようにテストを修正しています。 [ruby-core:38653] [Bug #5135]

nobu:r32851 2011-08-05 09:48:17 +0900

r32848 の ChangeLog のエントリの OpenBSD -> Fedora Rawhide に修正。

drbrain:r32852 2011-08-05 10:00:01 +0900

RubyGems 1.8.7 をマージしています。今回のコミットログには修正内容が個別に記載されていますね。ありがたい。
gem のディレクトリ作成の時に umask に 0022 を追加して他ユーザから書き込みできないようにしています。 [Bug #4930] また gem cleanup 中にファイルパーミッションのエラーが発生した時に続きの cleanup を実行するようにしています。また gem unpack uninstalled_gem で gem の version でソートして最新のものを選択するように修正しています。あとは diff からはどこかわからなかったのですがコミットログによると gem uninstall --format-executable のための require 漏れを追加して、--format-executable で削除する実行体の正しい名前を表示するようにしたそうです。それから gem uninstall で存在しない gem を指定されても無視するようにしたというのもあります。

mrkn:r32854 2011-08-05 10:11:12 +0900

r32846 のコメントの typo 修正。

nobu:r32855 2011-08-05 12:18:25 +0900

check_funcall() でメソッドが呼べるかチェックする時に method_missing を呼ぶ前に respond_to? でチェックして false を返してきたら method_missing を呼ばないようにしています。
うーんつまり respond_to? が true を返さない(つまり respond_to_missing? で明示的に指定した)メソッドでないと method_missing が呼ばれなくなる!? と一瞬思いましたが check_funcall() は内部的に to_??? で暗黙の変換をする時に使われているので通常のメソッド呼び出しの時には関係ありませんでした。 [ruby-core:38799] [Bug #5158]

shugo:r32856 2011-08-05 13:35:28 +0900

XMLRPC で String#size をバイト数を得るために使っていたとこで String#bytesize を利用するように修正しています。

nobu:r32857 2011-08-05 15:55:36 +0900

r32855 に関連したテストで respond_to? が false を返す時に String(), Array(), Integer() 等の暗黙の変換を行うメソッドが TypeError を返すというテストを追加しています。あと少しリファクタリング

ngoto:r32858 2011-08-05 16:03:21 +0900

Solaris 上での gcc4 に --std=gnu99 オプションを指定すると signbit() がマクロとして定義されるようで、prototype 宣言がコンパイルエラーになるのでマクロ定義されていたら宣言しないようにしています。 [ruby-dev:44355] [Bug #5159]

knu:r32859 2011-08-05 17:26:42 +0900

test_syslog.rb で syslog の出力が決め打ちの文字列と比較していたのですが、syslog のフォーマットには揺れがあるので正規表現でマッチさせて多少ゆるやかなチェックをするように変更しています。 [ruby-dev:44201] [Bug #5081]

knu:r32860 2011-08-05 17:28:00 +0900

ChangeLog に空のエントリが入っていたのを削除しています。

usa:r32861 2011-08-05 20:31:52 +0900

r32830 で記述された win32/win32.c の各関数のライセンスについてのコメントの表記を変更しています。"GPL" -> "Licnese: Artistic or GPL"、"non GPL" -> "License: Ruby's" としています。

nobu:r32862 2011-08-05 22:20:26 +0900

include/ruby/win32.h の frexp, modf マクロについては GPL と書かれていましたが Ruby's に改められています。

ngoto:r32863 2011-08-05 22:28:50 +0900

Solaris でバイトオーダーの判定に失敗して Inf, NaN の表現が間違ってしまうので BYTE_ORDER での判定をやめて WORDS_BIGENDIAN の定義の有無で判定するように変更しています。 [ruby-dev:44356] [Bug #5160]