[Mono-dev] Mono Tail Call status

Laurent Le Brun laurentlb at gmail.com
Fri Jul 23 05:26:35 EDT 2010


Hi,

I'm not a Mono contributor, just a F# user.

> what is current status of F# tail calls on Mono? I am doing a master
> thesis on functional languages in .Net and, for the practical part, I
> am planning to improve Mono F# support. Judging from the materials on
> the web, Tail Call Optimization is missing from Mono. Is this still
> true?

There are two bug reports related to F# tail calls:
https://bugzilla.novell.com/show_bug.cgi?id=502575
https://bugzilla.novell.com/show_bug.cgi?id=476785

In simple cases, the F# compiler is able to replace the tail call by a
while loop. When things get a bit more complex, F# compiler emits the
.tail opcode. As far as I know, Mono is able to optimize some of them,
but it fails in some cases (read file attached in bug 502575 for
examples).


As you are talking about F# support, I think the Reflection.Emit bug
with generics is one of the other main problems. Many programs, even
very simple ones, fail in F# Interactive. You see a few examples here:
https://bugzilla.novell.com/show_bug.cgi?id=419828

-- 
  Laurent


More information about the Mono-devel-list mailing list