From: Takaaki Tateishi Date: 2002-08-13T15:01:35+09:00 Subject: [ruby-dev:17993] Re: optimization module (Re: [ruby-list:35735] Re: tail recursion elimination) At Tue, 13 Aug 2002 12:27:32 +0900, > 無理というか... closure に対する escape analysis が必要でしょうね。 最初そう思ってたんですけど,静的な解析ではどこでclosureが作ら れるかがrubyでは判断できないような気がするのです.イテレータも 含めてすべてclosureとして扱ってしまえばできますがそうするとイ テレータを使うrubyではあんまり嬉しくないのではと思っています. # 区別できそうですか? > > どちらを使うかはユーザに選択させるつもりでいます. > > えぇと、どちらというと、ふたつあるということですか? closureさえ渡さなければ局所変数の使い回しで済むので,どっちの 変数を使うかはユーザが判断してねという感じです. ブロック変数を使うと局所変数を使う場合に比べて1.1〜1.2倍ほどの 計算時間がかかるためです.それに繰返しの中なので,結構無視でき ない差だと思うのです. -- Takaaki Tateishi