diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-06-16 12:19:31 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-06-27 08:01:03 -0400 |
commit | 0aa0ce69d835e2fef49cbd2d8f344182c07adc63 (patch) | |
tree | 4437f17d45b0dae4c4b3db2c59d4486fcfb20b8e /libraries/ghc-prim | |
parent | 75f0091bc59437c96fc076a31f389735f7302c9a (diff) | |
download | haskell-0aa0ce69d835e2fef49cbd2d8f344182c07adc63.tar.gz |
Bump ghc-prim and base versions
To 0.9.0 and 4.17.0 respectively.
Bumps array, deepseq, directory, filepath, haskeline, hpc, parsec, stm,
terminfo, text, unix, haddock, and hsc2hs submodules.
(cherry picked from commit ba47b95122b7b336ce1cc00896a47b584ad24095)
Diffstat (limited to 'libraries/ghc-prim')
-rw-r--r-- | libraries/ghc-prim/changelog.md | 43 | ||||
-rw-r--r-- | libraries/ghc-prim/ghc-prim.cabal | 2 |
2 files changed, 23 insertions, 22 deletions
diff --git a/libraries/ghc-prim/changelog.md b/libraries/ghc-prim/changelog.md index 049b254743..6f665f3fcb 100644 --- a/libraries/ghc-prim/changelog.md +++ b/libraries/ghc-prim/changelog.md @@ -1,24 +1,25 @@ -## next (edit as necessary) +## 0.9.0 + +- Shipped with GHC 9.4.1 - `magicDict` has been renamed to `withDict` and is now defined in `GHC.Magic.Dict` instead of `GHC.Prim`. `withDict` now has the type: - ``` - class WithDict cls meth where - withDict :: forall {rr :: RuntimeRep} (r :: TYPE rr). meth -> (cls => r) -> r + ```haskell + withDict :: forall {rr :: RuntimeRep} st dt (r :: TYPE rr). st -> (dt => r) -> r ``` Unlike `magicDict`, `withDict` can be used without defining an intermediate data type. For example, the `withTypeable` function from the `Data.Typeable` module can now be defined as: - ``` + ```haskell withTypeable :: forall k (a :: k) rep (r :: TYPE rep). () => TypeRep a -> (Typeable a => r) -> r - withTypeable rep k = withDict @(Typeable a) rep k + withTypeable rep k = withDict @(TypeRep a) @(Typeable a) rep k ``` - Note that the explicit type application is required, as the call to + Note that the explicit type applications are required, as the call to `withDict` would be ambiguous otherwise. - Primitive types and functions which handle boxed values are now levity-polymorphic, @@ -34,25 +35,25 @@ For example, `Array#` used to have kind: - ``` + ```haskell Type -> UnliftedType ``` but it now has kind: - ``` + ```haskell forall {l :: Levity}. TYPE (BoxedRep l) -> UnliftedType ``` Similarly, `MutVar#` used to have kind: - ``` + ```haskell Type -> Type -> UnliftedType ``` but it now has kind: - ``` + ```haskell forall {l :: Levity}. Type -> TYPE (BoxedRep l) -> UnliftedType ``` @@ -95,7 +96,7 @@ For example, the full type of `newMutVar#` is now: - ``` + ```haskell newMutVar# :: forall {l :: Levity} s (a :: TYPE (BoxedRep l)). a -> State# s -> (# State# s, MVar# s a #) @@ -103,7 +104,7 @@ and the full type of `writeSmallArray#` is: - ``` + ```haskell writeSmallArray# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). SmallMutableArray# s a -> Int# -> a -> State# s -> State# s @@ -116,7 +117,7 @@ - `mkWeak#`, `mkWeakNoFinalizer#`, `touch#` and `keepAlive#` are now levity-polymorphic instead of representation-polymorphic. For instance: - ``` + ```haskell mkWeakNoFinalizer# :: forall {l :: Levity} {k :: Levity} (a :: TYPE ('BoxedRep l)) @@ -133,7 +134,7 @@ - Primitive functions for throwing and catching exceptions are now more polymorphic than before. For example, `catch#` now has type: - ``` + ```haskell catch# :: forall {r :: RuntimeRep} {l :: Levity} (a :: TYPE r) @@ -154,7 +155,7 @@ Note in particular that `raise#` is now both representation-polymorphic (with an inferred `RuntimeRep` argument) and levity-polymorphic, with type: - ``` + ```haskell raise# :: forall {l :: Levity} {r :: RuntimeRep} (a :: TYPE (BoxedRep l)) (b :: TYPE r). @@ -171,7 +172,7 @@ - `reallyUnsafePtrEquality#` has been made more general, as it is now both levity-polymorphic and heterogeneous: - ``` + ```haskell reallyUnsafePtrEquality# :: forall {l :: Levity} {k :: Levity} (a :: TYPE (BoxedRep l)) @@ -192,14 +193,14 @@ - The following functions have been added to `GHC.Exts`: - ``` + ```haskell sameArray# :: Array# a -> Array# a -> Int# sameSmallArray# :: SmallArray# a -> SmallArray# a -> Int# sameByteArray# :: ByteArray# -> ByteArray# -> Int# sameArrayArray# :: ArrayArray# -> ArrayArray# -> Int# ``` -## 0.8.0 (edit as necessary) +## 0.8.0 - Change array access primops to use type with size maxing the element size: @@ -228,7 +229,7 @@ atomicCasWord32Addr# :: Addr# -> Word32# -> Word32# -> State# s -> (# State# s, Word32# #) atomicCasWord64Addr# :: Addr# -> WORD64 -> WORD64 -> State# s -> (# State# s, WORD64 #) -## 0.7.0 (edit as necessary) +## 0.7.0 - Shipped with GHC 9.0.1 @@ -267,7 +268,7 @@ the soundness issues of the latter (see [#17760](https://gitlab.haskell.org/ghc/ghc/-/issues/17760)). -## 0.6.1 (edit as necessary) +## 0.6.1 - Shipped with GHC 8.10.1 diff --git a/libraries/ghc-prim/ghc-prim.cabal b/libraries/ghc-prim/ghc-prim.cabal index 4be29843ae..e2918ccaf2 100644 --- a/libraries/ghc-prim/ghc-prim.cabal +++ b/libraries/ghc-prim/ghc-prim.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: ghc-prim -version: 0.8.0 +version: 0.9.0 -- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause license-file: LICENSE |