Changes between Version 9 and Version 10 of ReplacingGMPNotes
- Timestamp:
- 08/02/06 21:08:21 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ReplacingGMPNotes
v9 v10 26 26 2. Memory Structure; Simultaneous Access to GMP by Foreign (C) code in the Same Binary 27 27 28 In the current GMP implementation, GMP is configured to use GHC's GC memory, so C code in the same binary as GHC-compiled Haskell code cannot access GMP separately due to duplicate-symbols for GMP function names in both programs. This problem was noted in [http://hackage.haskell.org/trac/ghc/ticket/311 bug Ticket #311]. Simon Peyton-Jones suggested that a simple renaming of GHC-GMP functions would solve this problem and Bulat Ziganshin suggested simply using an automated tool to do this. See [http://www.haskell.org/pipermail/glasgow-haskell-users/2006-August/010679.html Replacement for GMP].28 In the current GMP implementation, GMP is configured to use GHC's GC memory, so any single binary containing Haskell code compiled with GHC contains the RTS and GMP. C code in the same binary as GHC-compiled Haskell code cannot access GMP separately due to duplicate-symbols for GMP function names in both programs. This problem was noted in [http://hackage.haskell.org/trac/ghc/ticket/311 bug Ticket #311]. Simon Peyton-Jones suggested that a simple renaming of GHC-GMP functions would solve this problem and Bulat Ziganshin suggested simply using an automated tool to do this. See [http://www.haskell.org/pipermail/glasgow-haskell-users/2006-August/010679.html Replacement for GMP]. 29 29 30 30 GHC does not have a custom-modified version of GMP (in fact, GHC uses the system build of GMP if that is available). The custom-memory configuration of GMP uses GMP's [http://swox.com/gmp/manual/Custom-Allocation.html#Custom-Allocation Custom Allocation] routines. Alternative libraries may not have this facility built in.
