GREF_CALL

ページ作った。ってか、昨晩のエントリ、GREF-TAIL-CALL だし。
正しくは以下とか?

gosh> (disasm (lambda () (+ (x 1 2 3) 4)))
main_code (name=#f, code=0x80f9cc0, size=12, const=2, stack=13):
args: #f
     0 PRE-CALL(3) 7
     2 CONSTI-PUSH(1) 
     3 CONSTI-PUSH(2) 
     4 CONSTI-PUSH(3) 
     5 GREF-CALL(3) #<identifier user#x>; (x 1 2 3)
     7 PUSH 
     8 CONSTI-PUSH(4) 
     9 GREF-TAIL-CALL(2) #<identifier user#+>; (+ (x 1 2 3) 4)
    11 RET 
#<undef>
gosh> 

これ、もしかしてかけ算でも同じなのか。

gosh> (disasm (lambda () (+ (* 1 2 3) 4)))
main_code (name=#f, code=0x80f9c30, size=12, const=2, stack=13):
args: #f
     0 PRE-CALL(3) 7
     2 CONSTI-PUSH(1) 
     3 CONSTI-PUSH(2) 
     4 CONSTI-PUSH(3) 
     5 GREF-CALL(3) #<identifier user#*>; (* 1 2 3)
     7 PUSH 
     8 CONSTI-PUSH(4) 
     9 GREF-TAIL-CALL(2) #<identifier user#+>; (+ (* 1 2 3) 4)
    11 RET 
#<undef>
gosh> 

これをサンプルにして良いものかどうか。しかし昨晩エントリのナチュラルっぷりも凄いんですが。

とりあえず

情報投入してレビュ依頼も投入。