Skip to content
  • Sylvain Henry's avatar
    ghc-bignum library · 9f96bc12
    Sylvain Henry authored
    ghc-bignum is a newer package that aims to replace the legacy
    integer-simple and integer-gmp packages.
    
    * it supports several backends. In particular GMP is still supported and
      most of the code from integer-gmp has been merged in the "gmp"
      backend.
    
    * the pure Haskell "native" backend is new and is much faster than the
      previous pure Haskell implementation provided by integer-simple
    
    * new backends are easier to write because they only have to provide a
      few well defined functions. All the other code is common to all
      backends. In particular they all share the efficient small/big number
      distinction previously used only in integer-gmp.
    
    * backends can all be tested against the "native" backend with a simple
      Cabal flag. Backends are only allowed to differ in performance, their
      results should be the same.
    
    * Add `integer-gmp` compat package: provide some pattern synonyms and
      function aliases for those in `ghc-bignum`. It is intended to avoid
      breaking packages that depend on `integer-gmp` internals.
    
    Update submodules: text, bytestring
    
    Metric Decrease:
        Conversions
        ManyAlternatives
        ManyConstructors
        Naperian
        T10359
        T10547
        T10678
        T12150
        T12227
        T12234
        T12425
        T13035
        T13719
        T14936
        T1969
        T4801
        T4830
        T5237
        T5549
        T5837
        T8766
        T9020
        parsing001
        space_leak_001
        T16190
        haddock.base
    
    On ARM and i386, T17499 regresses (+6% > 5%).
    On x86_64 unregistered, T13701 sometimes regresses (+2.2% > 2%).
    
    Metric Increase:
        T17499
        T13701
    9f96bc12