[Mono-dev] correct tail call optimization in mono
mark.probst at gmail.com
Sun Aug 23 16:21:11 EDT 2009
On Sun, Aug 23, 2009 at 10:07 PM, Rodrigo Kumpera<kumpera at gmail.com> wrote:
> Mono doesn't support TCO as well as .NET.
> It's planned to be fixed eventually. The problem is that the mono team at
> doesn't have available manpower to fix this anytime soon.
> So, if you do care about F# on mono, please contribute the required fixes
> for the
> JIT to support more broad TCO.
Proper tail calls is not just a more or less simple "fix". To support
proper tail calls in all scenarios, Mono needs to change its calling
convention to callee-pops-arguments, the reason being that in the
presence of proper tail calls, the caller does not know anymore which
method returns from a call, which means that it also doesn't know how
much argument space it needs to pop.
More information about the Mono-devel-list