いくつかのマイナーなプラットフォームでのビルド対応や json のバージョンアップがありました。
mrkn:r33113 2011-08-29 23:24:31 +0900
r33108 で Integer#& は Fixnum か Bignum しか受け付けなくなったので、to_int で整数に変換できれば何でもOKというテストがエラーになっていたのでチェック内容を変更(TypeError が発生することを確認)しています。
kosaki:r33114 2011-08-30 09:13:56 +0900
GNU Hurd (なんて懐しい名前!)でビルドに失敗するので configure.in で gnu* というプラットフォームの設定を追加しています。 [ruby-core:39185] [Bug #5250]
svn:r33115 2011-08-30 09:13:59 +0900
version.h の日付更新。
kosaki:r33117 2011-08-30 09:33:05 +0900
既に CRuby 本体では使われていない rb_thread_select() という API で select(2) が EINTR を返した時に対応していないので、ちゃんと対応している rb_thread_fd_select() に委譲するように変更しています。 [ruby-core:39102] [Bug #5229]
kosaki:r33118 2011-08-30 09:51:46 +0900
r32432 で Fiber のスタックを mmap で確保する時に FreeBSD では MAP_STACK をフラグに追加しないように(FreeBSD では MAP_STACK を追加すると第1引数に NULL ではなくアドレスを指定しないといけないため)してましたが、GNU/kFreeBSD というプラットフォームでも同様なので判定の条件に追加しています。 [ruby-core:39147] [Bug #5241]
GNU/kFreeBSD !? そういうのもあるのか。
kosaki:r33121 2011-08-30 09:59:52 +0900
thread.rb の Queue#pop の実装でキューが空の時に要素の追加を待つThreadを配列に入れるのですが、Thread#wakup で無理矢理待ってるThreadを起こすとその配列に重複して追加されてしまうので、既に追加済みだったらpushしないようにしています。 [ruby-dev:44400] [Bug #5195]
naruse:r33122 2011-08-30 11:23:12 +0900
json の 1.5.4 をマージしています。 一時オブジェクトの からの保護、 quirks_mode オプションの追加。Rational や Complex の対応などです。quirks_mode は、これまで JSON.parse や JSON.generate は Array か Hash しか対応していなくて、いきなり true, false や文字列、数値だけがあるデータを扱えなかったのですが、:quirks_mode => true を指定すると受け付けるようになります。 [ruby-core:38866] [Bug #5173]
naruse:r33124 2011-08-30 14:21:27 +0900
r33122 でマージした json に require "rational" と require "complex" が含まれていたので削除しています。