ruby-trunk-changes r51988 - r51990

今日は Symbol をブロック引数として渡す時のメソッド呼び出しの最適化などがありました。

nobu: r51988 2015-09-30 15:36:11 +0900

Symbol#to_proc で作られた Proc オブジェクトを inspect で文字列化した時に、元となった Symbol の名前を表示するようにしています。

nobu: r51989 2015-09-30 15:47:18 +0900

メソッドのブロック引数に &:meth のように Symbol を渡して to_proc で Proc に変換したものをブロックとして渡す時に、Symbol#to_proc が再定義されてなければ直接 rb_sym_proc_call() を呼び出す ISeq を生成するようにして、不要なメソッド呼び出しを変換を省くようにしています。

nobu: r51990 2015-09-30 17:12:14 +0900

dir.c の glob_helper() の引数に pathlen を追加して、 glob_helper で毎回 strlen() でサイズを取得していたのを省いています。 glob_helper() は再帰的に呼び出されることがあるので冗長なサイズ計算が繰り返される可能性があったみたいです。