yarv-dev:328
From: MAEDA Atusi <maeda-yarv atusi.org>
Date: Fri, 19 Nov 2004 23:35:48 +0900
Subject: [yarv-dev:328] Re: method call eval order
ささださんの日記への突っ込みにあったけど、「receiverは後」ルールだと、
receiver.method1(式1, 式2).method2(式3, 式4)
で式3, 式4 が式1, 式2より先に評価される?
SASADA Koichi <ko1 atdot.net> writes:
> 速くなると思っている理由は、スタックキャッシュにしたとき、多分めちゃ
> くちゃ速くなると思ってるんですが、まだデータ取ってないのでなんとも。
> データを取ってから出直してきます。
なるほど。そうかもしれません。
> > |あと、receiverを最後に積んだ場合、* 引数や省略可能な引数の扱いがめんど
> > |くないですか? receiverを最初に積むなら、呼ばれた側で後ろに積み足して
> > |やれば良いだけ、だけど。
> >
> > selfは独立したレジスタなんでしたっけ。だから、メソッドサーチ
> > した後はレジスタに積んじゃうんでしょうか。
>
> レジスタにはしてません。もしかしたら、レジスタとして扱っちゃったほう
> がいいのかもしれませんが。
レジスタにしちゃうと、
def foo(x, y = obj.method(x))
...
end
とかがかえって面倒になりませんかね。まあ平均的にどうなるかはやってみな
いと分からないかな。
前田敦司
--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml
317 2004-11-17 16:21 [ko1 atdot.net ] method call eval order 318 2004-11-17 18:29 ┣[nobu.nokada softhome] 319 2004-11-17 18:33 ┃┗[ko1 atdot.net ] 320 2004-11-18 17:04 ┗[matz ruby-lang.org ] 325 2004-11-19 13:08 ┗[maeda-yarv atusi.org] 326 2004-11-19 13:46 ┗[matz ruby-lang.org ] 327 2004-11-19 15:30 ┗[ko1 atdot.net ] -> 328 2004-11-19 23:35 ┗[maeda-yarv atusi.org] 329 2004-11-19 23:56 ┗[matz ruby-lang.org ]