Bug 25224 - stack overflow after printfn something
Summary: stack overflow after printfn something
Alias: None
Product: Runtime
Classification: Mono
Component: JIT (show other bugs)
Version: 5.10 (2017-12)
Hardware: PC All
: --- normal
Target Milestone: ---
Assignee: Bugzilla
Depends on:
Reported: 2014-12-10 07:20 UTC by ZAN DoYe
Modified: 2018-01-05 13:47 UTC (History)
6 users (show)

See Also:
Tags: bugpool
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
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.
Comment 4 Ludovic Henry 2018-01-05 13:47:31 UTC
I can reproduce with Mono (2017-12/ec4a957151a).

Note You need to log in before you can comment on or make changes to this bug.