[GHC] #9281: Rewrite `integer-gmp` to use only non-allocating GMP functions

GHC ghc-devs at haskell.org
Thu Oct 23 10:40:24 UTC 2014


#9281: Rewrite `integer-gmp` to use only non-allocating GMP functions
-------------------------------------+-------------------------------------
              Reporter:  hvr         |            Owner:  hvr
                  Type:  task        |           Status:  patch
              Priority:  normal      |        Milestone:  7.10.1
             Component:  Core        |          Version:
  Libraries                          |         Keywords:  integer-gmp
            Resolution:              |     Architecture:  Unknown/Multiple
      Operating System:              |       Difficulty:  Unknown
  Unknown/Multiple                   |       Blocked By:
       Type of failure:              |  Related Tickets:  #8647
  None/Unknown                       |
             Test Case:              |
              Blocking:              |
Differential Revisions:  Phab:D82    |
-------------------------------------+-------------------------------------
Changes (by hvr):

 * cc: core-libraries-committee@… (added)


Old description:

> After some promising results with a proof-of-concept implementation, I'm
> optimistic we can rewrite `integer-gmp` to use only non-allocating GMP
> lib functions without suffering from serious regressions.
>
> If successful, this would
>
>  - allow to avoid the custom GMP allocator hack, and thus
>  - avoid issues when linking against other C libraries using GMP,
>  - simplify code, as we would perform all heap allocations in Haskell
> code (and never inside Cmm/C code as its done now),
>  - and finally maybe even remove a few more superfluous temporary heap
> allocations.
>
> This rewrite can be done incrementally.

New description:

 After some promising results with a proof-of-concept implementation, I'm
 optimistic we can rewrite `integer-gmp` to use only non-allocating GMP lib
 functions without suffering from serious regressions.

 If successful, this would

  - allow to avoid the custom GMP allocator hack, and thus
  - avoid issues when linking against other C libraries using GMP,
  - simplify code, as we would perform all heap allocations in Haskell code
 (and never inside Cmm/C code as its done now),
  - and finally maybe even remove a few more superfluous temporary heap
 allocations.

 see also wiki:Design/IntegerGmp2

--

Comment:

 started a wiki-page over at wiki:Design/IntegerGmp2

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9281#comment:14>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list