Hi! On Tue, Aug 10, 2004 at 12:59:46PM +0100, Simon Marlow wrote: > On 09 August 2004 16:57, Remi Turk wrote: > > > Hm, I _was_ aware of mp_set_memory_functions being used by the RTS. > > I've seen it often enough in ltrace's ;) > > It does indeed sound rather plausible (and making big allocations > > and such does indeed cause it to happen earlier). > > > > At which point my next question is: what now? I don't feel really > > confident about my GHC-hacking skills (huh? skills? where? ;) so > > does that mean I'm out of luck? > > *looks* Am I correct that I'd have to copy any GMP-allocated > > memory to my own memory before returning from C and vice-versa? > > I hope not :( > > GHC's use of GMP does cause problems if you want to use GMP for your own > purposes, or if you link with external code that wants to use GMP. The > real problem is that GMP has internal state, which means it can't be > used in a modular way. But there's not much we can do about that. > > Possibilities: > [...] > - reset GMP's memory allocators before calling it from your code, > and set them back to the RTS allocators afterward. Slow, but it > should work. It doesn't solve the problem properly though: external > libraries which use GMP are still broken.
I would be careful though: http://www.swox.com/gmp/manual/Custom-Allocation.html Be sure to call mp_set_memory_functions only when there are no active GMP objects allocated using the previous memory functions! Usually that means calling it before any other GMP function. Greetings, Carsten -- Carsten Schultz (2:38, 33:47), FB Mathematik, FU Berlin http://carsten.codimi.de/ PGP/GPG key on the pgp.net key servers, fingerprint on my home page.
pgpHRM263ZIUM.pgp
Description: PGP signature
_______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users