On 18/03/2012 21:28, bearophile wrote:
Alex Rønne Petersen Wrote:

Does D to tail call optimization of any kind?

The D standard doesn't require the D compiler to perform that optimization 
(unlike Scheme).
Currently both DMD and LDC are able to perform tail call optimization in some 
normal
cases. And I presume GDC is able to do the same.

What are "normal cases"?

- where the function directly tail-calls itself?
- where two functions mutually tail-call each other?
- where a function tail-calls another non-recursively?

And in the last case, I can see that it depends on being able to replace the caller's stack frame with the callee's. But what does this depend on - just the relative sizes of the functions' stack frames, or is it more subtle than that?

Stewart.

Reply via email to