Bug 25224

Summary: stack overflow after printfn something
Product: [Mono] Runtime Reporter: ZAN DoYe <zandoye>
Component: JITAssignee: Bugzilla <bugzilla>
Status: CONFIRMED ---    
Severity: normal CC: masafa, mono-bugs+mono, mono-bugs+runtime, vargaz, vlad.brezae
Priority: ---    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Tags: Is this bug a regression?: ---
Last known good build:

Description ZAN DoYe 2014-12-10 07:20:39 UTC
let rec a ()= printfn "%d" 1; b ()
and b ()= a ()
let ()= a ()



compiled with fsharp 3.1.1.26+dfsg2-3~xamarin1
The 3 lines program above causes stack overflow.
If I replace `"%d" 1' with `"1"', the program just keep running properly.
Comment 1 Zoltan Varga 2014-12-11 13:29:32 UTC
Seems to be caused by missing tail call optimization.
Comment 2 Zoltan Varga 2014-12-11 15:40:19 UTC
Fixed in mono master ca0dd5c0bb0f600331aac3c6b8d0579e37cdd0c7.
Comment 3 Zoltan Varga 2014-12-11 17:52:23 UTC
Reverted the fix as it causes a perf regression.