[Haskell-cafe] Memory leak in infinite recursion

Vanessa McHale vanessa.mchale at iohk.io
Wed Jun 20 00:11:04 UTC 2018


Have you profiled it? I wouldn't worry about recursion until I've seen
the problem. I believe GHC defaults to infinite stack size.

Have you tried using hp2ps and/or looking at the code via threadscope?


On 06/19/2018 01:36 PM, Никита Фуфаев wrote:
> Hello everyone
>
> In C you can't implement main loop with recursion like
> void mainLoop() {
>   doSomething();
>   mainLoop();
> }  
> because without optimisations stack will overflow.
> In haskell it's common to write
> mainLoop = doSomething >> mainLoop, and it doesn't leak memory because
> of haskell's evaluation model.
> Does memory leak or argument stack overflow happen in this case?
> mainLoop = doSomething >> mainLoop >> exit ExitSuccess
> What about this case?
> mainLoopModeA = do
>   doSomething
>   when condition mainLoopModeB
>   mainLoopModeA
> mainLoopModeB = do
>   doSomethingElse
>   when anotherCondition mainLoopModeA
>   mainLoopModeB
>
> or this case?
> mainLoopModeA = do
>   doSomething
>   if condition
>     then mainLoopModeB
>     else mainLoopModeA
> mainLoopModeB = do
>   doSomethingElse
>   if anotherCondition 
>     then mainLoopModeA
>     else mainLoopModeB
>
> -- 
> Nikita Fufaev
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180619/d1a1f486/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180619/d1a1f486/attachment.sig>


More information about the Haskell-Cafe mailing list