ruby-trunk-changes r55345 - r55368

今日は ENV の NUL 終端していない文字列の時の対応、標準添付ライブラリ forwardable の不具合修正などがありました。

nobu: r55345 2016-06-10 14:48:38 +0900

SHARABLE_MIDDLE_SUBSTRING を 1 に定義して文字列が NUL 文字終端しないようにすると ENV#[ ] の挙動に影響があってテストが失敗していたのを修正しています。 get_env_cstr() の戻り値の文字列を NUL 終端するようにしています。 [ruby-dev:49655] [Bug #12475]

svn: r55346 2016-06-10 14:48:39 +0900

version.h の日付更新。

duerst: r55359 2016-06-10 17:12:28 +0900

r55330 で一旦導入されて r55331 で revert された rb_str_upcase_bang() での :ascii オプションの処理を rb_str_ascii_casemap() を呼び出すようにする変更です。前と全く同じ内容みたいですね。無限再帰は間違いだったのかな。

duerst: r55361 2016-06-10 17:35:17 +0900

rb_str_capitalize_bang() と rb_str_swapcase_bang() でも :ascii オプション指定時に rb_str_ascii_casemap() にまかせるように変更しています。

nobu: r55366 2016-06-10 21:54:25 +0900

r53381 での標準添付ライブラリ forwardable の修正([ruby-core:72579] [Bug #11916])で method_defined? でメソッドの呼び出しはかっこをつけて強制的にメソッド呼び出しとして parse させるようにする処理がありましたが、Module/Class ではないオブジェクトに SingleFowardable を extend して使う場合(そんなのがあったのか)、ここに method_defined? メソッドがないので NoMethodError になるので self のクラスを判定して Module でなかったら respond_to? で代用するように修正しています。 [ruby-dev:49656] [Bug #12478]
前も forwardable.rb のこの部分は r53511 でも追加対応がありましたし結構難所ですね。

nobu: r55368 2016-06-10 22:44:05 +0900

標準添付ライブラリ forwardable の Forwardable._delegator_method に rdoc 向けの :nodoc: タグのコメントを追加しています。