[Haskell-cafe] Way to prevent a value from being garbage collected too early

Sylvain Henry sylvain at haskus.fr
Wed May 13 07:28:28 UTC 2020


The primitive is `touch#` 
(https://www.stackage.org/haddock/lts-15.12/base-4.13.0.0/GHC-Exts.html#v:touch-35-)

It's quite fragile (e.g. can be optimized away or moved), so we're 
trying to replace it with something else. See 
https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/with-combinator


On 13/05/2020 09:03, YueCompl via Haskell-Cafe wrote:
> Thanks! I found `touch` in `Control.Monad.Primitive` , and repa even 
> requires an array element type to implement `Elt` which mainly asking 
> for the `touch` method.
>
> It's interesting to know there's even more improvement on it.
>
>> On 2020-05-13, at 14:52, David Feuer <david.feuer at gmail.com 
>> <mailto:david.feuer at gmail.com>> wrote:
>>
>> You're looking for the `touch` function. I don't remember where it 
>> lives. I believe there's also a new and improved replacement whose 
>> name I don't remember.
>>
>> On Wed, May 13, 2020, 2:47 AM YueCompl via Haskell-Cafe 
>> <haskell-cafe at haskell.org <mailto:haskell-cafe at haskell.org>> wrote:
>>
>>     Folks,
>>
>>     I need a little help, I remember I had read some where that,
>>     there's a function to fake a use of a value, so it won't be
>>     garbage collected too early, as GHC has an optimization to forget
>>     a value as early as possible. But I can't remember the function
>>     name or even the keyword to google it out, hint me please!
>>
>>     Best regards,
>>     Compl
>>
>>     _______________________________________________
>>     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.
>>
>> _______________________________________________
>> 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.
>
>
> _______________________________________________
> 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/20200513/f836f2f2/attachment.html>


More information about the Haskell-Cafe mailing list