ruby-trunk-changes r58019 - r58024

今日は Enumerable の各メソッドに lambda をブロック引数として渡した時のブロック呼び出し時のブロックパラメータの渡しかたの仕様変更がありました。

nobu: r58019 2017-03-19 10:11:12 +0900

lambda 型の Proc オブジェクトをブロック引数として渡した時に、Enumerable のメソッドでブロックの呼び出し時の引数の数が一致しなかったら ArgumentError を発生させるように変更しています。また通常は配列が渡されるところで lambda には splat された複数の引数として渡されるようにしています。 [Bug #9605] [ruby-core:77065] [Bug #12705]
splat の仕様(特にブロックパラメータの場合)すごく複雑なので、これで少しシンプルになった(呼び方ではなくブロックに渡される Proc オブジェクトに依存するようになる)のなら基本的には改善だと思いますが、挙動の変化があって結構影響が大きそうなので 2.5 までにいろいろ動くか確認が必要そうですね。また Enumerable のメソッドだけみたいなので、かえって複雑になったかも。

stomar: r58020 2017-03-19 18:51:29 +0900

拡張ライブラリ date の DateTime#rfc3339 や DateTime#iso8601, DateTime#xmlschema, DateTime#jisx0301 の rdoc 用コメントのマークアップや文法の修正。 [ruby-core:68418] [Bug #10936]

nobu: r58021 2017-03-19 21:46:31 +0900

rb_str_format() でバッファに padding を埋めるのに while ループを書いてたところに、専用の FILL() および FILL_() というマクロがあるのでそれを使うようにリファクタリングしています。

stomar: r58023 2017-03-20 00:01:05 +0900

標準添付ライブラリ uriURI::Generic#normalize の rdoc 用コメントにサンプルと説明を追記しています。 [ruby-core:58430] [Bug #9127]

svn: r58024 2017-03-20 00:01:06 +0900

version.h の日付更新。