Why do we put GMP allocations on GHC heaps?
Simon Peyton-Jones
simonpj at microsoft.com
Thu Oct 24 08:41:52 UTC 2013
| This is true, but I would add that C finalizers are rather more prompt
| and reliable than Haskell finalizers, since we added special support for
| them a couple of versions ago. C finalizers are run directly by the GC
| rather than in separate threads, and we run all the outstanding ones
| before the program terminates.
Great. Is this difference documented? I couldn't find my way to this info.
I tried Hoogling for "final", and got this link
http://hackage.haskell.org/package/base-4.6.0.1/docs/Foreign-ForeignPtr.html#v:addForeignPtrFinalizer
but it is dead.
I wonder if it would be worth summarising in the user manual the main facilities offered, with pointers to the Haddock docs that describe them?
Simon
| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Simon
| Marlow
| Sent: 24 October 2013 09:24
| To: Bryan O'Sullivan; Gergely Risko
| Cc: ghc-devs at haskell.org
| Subject: Re: Why do we put GMP allocations on GHC heaps?
|
| On 23/10/13 17:08, Bryan O'Sullivan wrote:
| >
| > On Wed, Oct 23, 2013 at 4:31 AM, Gergely Risko <gergely at risko.hu
| > <mailto:gergely at risko.hu>> wrote:
| >
| > I can understand that this may be slower in CPU, but can you
| please
| > elaborate why would it be worse in memory, how the frees wouldn't
| happen
| > in a "timely manner"? I thought finalisers are called when the
| > referencee is GCd, so if we free the mpz in the callback, then
| where are
| > we going wrong?
| >
| >
| > There is no guarantee that finalizers will be called at all, much less
| > that they will be called in a timely manner. This is a general and
| > well-known property of all garbage collectors, not something unique to
| GHC.
|
| This is true, but I would add that C finalizers are rather more prompt
| and reliable than Haskell finalizers, since we added special support for
| them a couple of versions ago. C finalizers are run directly by the GC
| rather than in separate threads, and we run all the outstanding ones
| before the program terminates.
|
| Cheers,
| Simon
|
|
| _______________________________________________
| ghc-devs mailing list
| ghc-devs at haskell.org
| http://www.haskell.org/mailman/listinfo/ghc-devs
More information about the ghc-devs
mailing list