>>597
確かに compiler だけで実行前に最適化するのは難しいと思う。
interpreter に直接 stack 書き換えてもらう、って感じで考えてた。

compile の時点だと、末尾で呼び出しや束縛があることまではわかるよね。
compile した関数だけ最適化されればいいなら、これに専用の byte-opcode とか割り当てればいいのかも。
普通の束縛や呼び出しの代わりにそっちを使ったときだけ、 interpreter が stack 書き換えてくれるの。
これだと、それ以外の関数の実行への悪影響は、そんなに大きくならないかも。