... | ... | @@ -550,12 +550,17 @@ A new primop, `keepAlive#`, has been introduced to subsume `touch#`, which canno |
|
|
|
|
|
### `integer-gmp-1.1` / `integer-simple` / `ghc-bignum-1.0`
|
|
|
|
|
|
`integer-simple` package has been removed, use `ghc-bignum` built with `native` backend instead.
|
|
|
`ghc-bignum` package replaces both `integer-gmp` and `integer-simple`. The specific backend to use still has to be selected at GHC build time (via `ghc-bignum`'s Cabal flags).
|
|
|
|
|
|
`integer-gmp-1.1` package is provided for backward compatibility but now it is based on `ghc-bignum`. As a consequence packages depending on `integer-gmp`:
|
|
|
- to use `Integer`'s constructors (`S#`, `Jn#`, `Jp#`): should continue to work as before, whatever backend is used by `ghc-bignum` (i.e. even if it's not `gmp`).
|
|
|
- to use functions from `GHC.Integer`: don't need to depend on it anymore as `GHC.Integer` is now in `base`.
|
|
|
- to use GMP specific functions (prime test, secure powmod, etc.): should use another package providing these functions (e.g. [hgmp](https://hackage.haskell.org/package/hgmp)). `ghc-bignum` only exposes functions provided by all of its backends.
|
|
|
If you were using `integer-simple`, consider using a GHC distribution built with `ghc-bignum`'s `native` backend instead.
|
|
|
|
|
|
An `integer-gmp-1.1` package is provided for backward compatibility. It is based on `ghc-bignum` and available whatever backend is used. It allows you to continue to use previous `Integer`'s constructors (`S#`, `Jn#`, `Jp#`) and functions which have been renamed in `gch-bignum`.
|
|
|
|
|
|
`GHC.Integer` module is no longer in `integer-*` packages but directly in `base`, just like `GHC.Natural`.
|
|
|
|
|
|
Some GMP specific functions (prime test, secure powmod, etc.) *are not implemented* in `ghc-bignum`. All `ghc-bignum` backends must support the same set of operations with the same deterministic results. We couldn't make the `native` backend support them (for different reasons, see #18427). If you need those functions, you should use another package providing them such as [hgmp](https://hackage.haskell.org/package/hgmp).
|
|
|
|
|
|
`shiftL` and `shiftR` for `Natural` values used to return `0` when the shift amount was negative. From now on, they trigger an overflow exception in this case to be more similar to `Integer`'s behavior (see #18499).
|
|
|
|
|
|
### `template-haskell-2.17.*`
|
|
|
|
... | ... | |