let rec a ()= printfn "%d" 1; b ()
and b ()= a ()
let ()= a ()
compiled with fsharp 18.104.22.168+dfsg2-3~xamarin1
The 3 lines program above causes stack overflow.
If I replace `"%d" 1' with `"1"', the program just keep running properly.
Seems to be caused by missing tail call optimization.
Fixed in mono master ca0dd5c0bb0f600331aac3c6b8d0579e37cdd0c7.
Reverted the fix as it causes a perf regression.
I can reproduce with Mono 22.214.171.124 (2017-12/ec4a957151a).
Fixed in master with https://github.com/mono/mono/commit/b4ee86154fce71ba4eb96f4c591a5ce236d23b85