ruby-trunk-changes r49084 - r49092

2015 年になりました。今年もよろしくお願いします。

新年最初の今日はキーワード引数の処理と GC Symbol に関する不具合修正などがありました。

nobu: r49084 2014-12-31 23:59:19 +0900

r49083 の再修正。 標準添付ライブラリ resolv で dup.force_encoding("ASCII-8BIT") のかわりに String#b メソッドを利用するようにしています。

kazu: r49085 2015-01-01 00:00:12 +0900

r49083 の ChangeLog エントリの typo 修正。

svn: r49086 2015-01-01 00:00:19 +0900

version.h の日付更新。

nobu: r49088 2015-01-01 09:14:23 +0900

キーワード引数の処理の不具合でキーが Symbol でない Hash を引数としてキーワード引数があるメソッドやブロックに渡すと SEGV していたのを修正しています。 keyword_hash_p() でキーワード引数として使えない時に Qnil を返すべきところを 0 を返していたのを修正しています。 これは結構影響大きめの不具合のような気がしますね。 2.1.5 では再現しなかったので 2.2 からのキーワード引数最適化絡みでの不具合のようです。 [ruby-core:67264] [Bug #10685]

nobu: r49089 2015-01-01 10:20:04 +0900

r49088 の ChangeLog エントリに ML とチケットの番号の参照を追記しています。 [ruby-core:67264] [Bug #10685]

normal: r49090 2015-01-01 11:18:40 +0900

dynamic symbol の解放処理で global_symbols.dsymbol_fstr_hash からの削除が抜けていたためメモリリークが発生していたのを修正しています。 Symbol GC で Symbol (のうち to_sym などで作られるもの)が解放できるのがウリなのでこれも重要な不具合修正ですね。 [ruby-core:67268] [Bug #10686]

nobu: r49091 2015-01-01 17:50:55 +0900

Windows 版でスクリプトファイル名にマルチバイト文字が用いられていて $0 で参照した時のテストで "\u{3042}.rb" というファイル名に固定になっていたので locale が特定のエンコーディングの時しか正常なテストになっていなかったので 0x80 から 0xFFFF の範囲で locale で正しい文字として認識されるコード値を探してそれを利用するようにしています。 [ruby-core:67109] [Bug #10643]

hsbt: r49092 2015-01-01 21:41:54 +0900

doc/regexp.rdoc で正規表現の文字クラスの \s と \S には "\v" (垂直タブ)も含まれるのに書かれていなかったので追記しています。 [ruby-dev:48765] [Bug #10624]