ruby-trunk-changes r30606 - r30614

Windows プラットフォームでの RubyGems 関連の不具合修正+αがあり、RubyGems にまつわる修正は一段落という感じに見受けられます。

akr:r30606 2011-01-20 06:03:36 +0900

method.h の関数マクロの引数にかっこをつける修正です。

svn:r30607 2011-01-20 06:03:38 +0900

version.h の日付更新。

ryan:r30608 2011-01-20 06:23:04 +0900

RbConfig::CONFIG["DLEXT2"] が nil のプラットフォーム(Windows?)で rubygems がエラーを起こす不具合の修正を取り込んでいる、そうですが、それに効いてるのは lib/rubygems.rb の 4つめの hunk あたりだけで、ついでにいろいろ修正やパフォーマンス改善のための require の分散/遅延化が混ざっているようです。
test/rubygems/test_gem_commands_sources_command.rb でこれまで何もしていなかったテストが assert_raise で例外が上がることをチェックするようになっているあたりがちょっとひっかかりますが、特に gem sources コマンドが壊れている様子もないので問題ないんじゃないかなぁ、と思います。

tenderlove:r30609 2011-01-20 08:05:53 +0900

Psych::Coder の object 属性を外部から変更できるようにしています……ってそれがどういう意味なのかわかってないんですけどね。

tenderlove:r30610 2011-01-20 09:20:57 +0900

r30609 の影響で test_time(Psych::TestJSONTree) のテストが Failure になっていたので修正……あれ直ってない。どうもタイムゾーンの影響で意図した通りになっていないようです。多分テストが特定のタイムゾーンを仮定してしまっているせいです。これはチケット化された模様 [Bug #4297]。

usa:r30611 2011-01-20 11:41:09 +0900

WEBrick のテストで Windows 環境では rubygems.rb からの rbconfig.rb のロードが失敗することがあるので、テスト時に --disable-gems を指定するようにしています。

kosaki:r30612 2011-01-20 12:27:54 +0900

宣言のない関数を使用するのを警告じゃなくエラーにする gcc のオプションをつけるようにした影響で configure のチェックで NEGATIVE_TIME_T が定義されなくなっていたので #include を追加しています。[Bug #4287] [ruby-dev:43060]
configure でチェックに使うソースまで全てチェックするというのはなかなか厳しいものがあるので、その間は無効にできたりするするといいかなぁと思ったりも。というか今になってすぐ下の LOCALTIME_OVERFLOW_PROBLEM のチェックも同じ問題をかかえているのに気がついてしまいました……。視野が狭くてすみません。

mrkn:r30613 2011-01-20 16:13:58 +0900

README.EXT(.ja) に拡張ライブラリを作成する時のソースファイル名に conftest.c というのを使うのを避けるべきと追記されています。mkmf がチェックのために conftest.c という名称のソースファイルを一時的に生成するため、悲しいことになるためです。おそらくこのコミットの背後には悲しい事件があったのでしょう……。