ruby-trunk-changes r31927 - r31944

今日は Psych::Parser#parse でのメモリリークの修正がありました。

kosaki:r31927 2011-06-05 23:35:09 +0900

rb_thread_stop_timer_thread() 等の関数プロトタイプ宣言を直接 eval.c や process.c に書くのをやめて vm_core.h を include することで取り込むようにしています。

tenderlove:r31930 2011-06-06 09:41:24 +0900

Psych::Parser#parse で yaml_parser_parse() で取得した event に対して yaml_event_delete() を呼ぶようにしています。メモリリークの解消。

svn:r31931 2011-06-06 09:41:27 +0900

version.h の日付更新。

naruse:r31933 2011-06-06 10:53:41 +0900

lib/net/http.rb で openssl と securerandom を遅延ロードするために Module#autoload を利用して OpenSSL や SecureRandom を利用しようとした時に自動で require するようにしていたのを、autoload を使うのをやめて、defined? で定数のが定義されてるかチェックして require するようにしています。最近 ruby-dev で話題になっていた autoload は使わないようにしていこうという方針による修正だと思います。

sorah:r31934 2011-06-06 12:47:04 +0900

Test::Unit::Runner#puke を定義して MiniTest::Unit#puke を上書きしています。先日マージされた minitest 2.2.2 で -v オプションをつけないと skip の結果のメッセージが表示されなくなる仕様変更を従来の動作に戻して --hide-skip オプションをつけた時だけ skip の結果を隠すようにしています。

usa:r31935 2011-06-06 14:09:58 +0900

include/ruby/defines.h にて rb_infinity と rb_nam に extern を直接書いていたところを RUBY_EXTERN を使うようにしています。"export for Windows " とあるのは INFINITY や NAN が未定義の環境ということでしょうか。

usa:r31936 2011-06-06 14:12:17 +0900

ext/date/date_core.c の valid_jd_sub() で double に変換して valid_sg() に渡さないといけないところを VALUE のままで渡していたところを修正。Date#valid_jd? の判定がうまくいっていなかった可能性があります。また警告除去のためのキャスト追加。

usa:r31937 2011-06-06 14:38:11 +0900

rdoc のテストで Windows での改行コードの自動変換の不具合(r31748 か r31872 あたりで修正済み)を回避するためのコードが入っていたのを削除しています。

usa:r31938 2011-06-06 15:11:37 +0900

INFINITY や NAN の定義のための rb_infinity や rb_nan の宣言を include/ruby/defines.h から include/ruby/missing.h へ移動しています。RUBY_EXTERN の定義が include/ruby/defines.h のこの宣言より後にあったのでこの位置ではだめだったようです。

tadf:r31939 2011-06-06 21:05:12 +0900

date で strftimev() で日付を文字列化する時のフォーマット指示子を %F -> %Y-%m-%d, %T -> %H:%M:%S のように1文字の指示子で表現していたものを分解しています。また Date#strftime が引数が taint されていたら返す文字列も taint するようにしています。

tadf:r31941 2011-06-06 21:38:15 +0900

Date/DateTime の rdoc に少し特記事項を追記しています。

tadf:r31943 2011-06-06 22:00:38 +0900

Date._strptime および Date#strftime が引数の文字列のエンコーディングと同じエンコーディングの文字列を返すことを確認するテストを追加しています。

nagachika:r31944 2011-06-06 23:06:59 +0900

cont.c で Fiber の実装に getcontext/setcontext を利用するバージョンを使うかどうかの判定を #ifdef ではなくて #if を使うようにして、FIBER_USE_NATIVE には 1/0 を指定するようにしています。これはコンパイルオプションに -DFIBER_USE_NATIVE=0 を指定すると getcontext/setcontext を利用しないバージョンに切り替えることができるようにするためです。 [ruby-dev:42170]