<div dir="ltr"><div><div><div>Elise,<br><br>I remember that your earlier email on the beginner list asked about "diffing from moment to moment." Perhaps you can sketch what you're trying to achieve?<br><br></div>Because once you get into the internals of GC the learning ramp gets very, very steep. There are traps known and unknown for both the wary and unwary, as a cursory overview of GHC trac will inform.<br></div><br></div>There's probably a way of getting things to work without relying on implementation-specific haskell.<br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">-- Kim-Ee</div></div>
<br><div class="gmail_quote">On Mon, Jan 19, 2015 at 7:10 PM, Elise Huard <span dir="ltr"><<a href="mailto:haskell@elisehuard.be" target="_blank">haskell@elisehuard.be</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I was wondering if there was a way to check whether a particular data<br>
structure gets garbage collected in a program.  A friendly person<br>
pointed me to System.Mem.Weak on the Haskell-Beginner list - however<br>
I've been unable to verify how it works, so I'm bumping it to this<br>
list.<br>
<br>
See the following toy program: I was trying to see whether the output<br>
would contain "garbage collected".<br>
I wondered if performGC is a nudge rather than an immediate "garbage<br>
collect now" instruction, and performGC is not actually performed?  Or I've<br>
misunderstood finalizers in this context and they would not actually<br>
be executed when z gets garbage collected?<br>
<br>
import System.Mem.Weak<br>
import System.Mem (performGC)<br>
import Control.Concurrent (threadDelay)<br>
<br>
<br>
main :: IO ()<br>
main = do let x = 5<br>
              y = "done"<br>
              z = 3<br>
          a <- mkWeak z x (Just (putStrLn "garbage collected"))<br>
          performGC<br>
          threadDelay 20000000<br>
          print y<br>
<br>
Thank you,<br>
<br>
Elise<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br></div>