Sync `ghc-prim` changelog from GHC 8.2, again
[ghc.git] / libraries / ghc-prim / changelog.md
1 ## 0.5.2.0
2
3 - Shipped with GHC 8.4.1
4
5 - Added to `GHC.Prim`:
6
7         compareByteArrays# :: ByteArray# -> Int# -> ByteArray# -> Int# -> Int# -> Int#
8
9 - Don't allocate a thunk for each unpacked UTF-8 character in `unpackCStringUtf8#`
10
11 ## 0.5.1.1 *November 2017*
12
13 - Shipped with GHC 8.2.2
14
15 - Changed strictness properties of `catchRetry#` (#14171)
16
17 ## 0.5.1.0 *July 2017*
18
19 - Shipped with GHC 8.2.1
20
21 - Added to `GHC.Prim`:
22
23         fabsDouble# :: Double# -> Double#
24         fabsFloat# :: Float# -> Float#
25         isByteArrayPinned# :: ByteArray# -> Int#
26         isMutableByteArrayPinned# :: MutableByteArray# s -> Int#
27         anyToAddr# :: a -> State# (RealWorld) -> (# State# (RealWorld),Addr# #)
28
29 - New primitives for compact regions in `GHC.Prim`:
30
31         Compact#
32         compactNew#
33         compactResize#
34         compactContains#
35         compactContainsAny#
36         compactGetFirstBlock#
37         compactGetNextBlock#
38         compactAllocateBlock#
39         compactFixupPointers#
40         compactAdd#
41         compactAddWithSharing#
42         compactSize#
43
44 - Generalised `noDuplicate#` from
45
46         noDuplicate# :: State# (RealWorld) -> State# (RealWorld)
47
48     to
49
50         noDuplicate# :: State# s -> State# s
51
52
53 ## 0.5.0.0
54
55 - Shipped with GHC 8.0.1
56
57 - `GHC.Classes`: new `class IP (a :: Symbol) b | a -> b`
58
59 - `GHC.Prim`: changed type signatures from
60
61         check# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, () #)
62         finalizeWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, () #) #)
63         mkWeak# :: a -> b -> c -> State# RealWorld -> (# State# RealWorld, Weak# b #)
64
65     to
66
67         check# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> State# RealWorld
68         finalizeWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, b #) #)
69         mkWeak# :: a -> b -> (State# RealWorld -> (# State# RealWorld, c #)) -> State# RealWorld -> (# State# RealWorld, Weak# b #)
70
71 - Removed from `GHC.Prim`:
72
73         parAt# :: b -> a -> Int# -> Int# -> Int# -> Int# -> c -> Int#
74         parAtAbs# :: a -> Int# -> Int# -> Int# -> Int# -> Int# -> b -> Int#
75         parAtForNow# :: b -> a -> Int# -> Int# -> Int# -> Int# -> c -> Int#
76         parAtRel# :: a -> Int# -> Int# -> Int# -> Int# -> Int# -> b -> Int#
77         parGlobal# :: a -> Int# -> Int# -> Int# -> Int# -> b -> Int#
78         parLocal# :: a -> Int# -> Int# -> Int# -> Int# -> b -> Int#
79
80 - Added to `GHC.Prim`:
81
82         getSizeofMutableByteArray# :: MutableByteArray# d -> State# d -> (# State# d, Int# #)
83         subWordC# :: Word# -> Word# -> (# Word#, Int# #)
84         runRW# :: (State# RealWorld -> (# State# RealWorld, o #)) -> (# State# RealWorld, o #)
85
86 - Added to `GHC.Types`:
87
88         data Module = Module TrName TrName
89         data Nat
90         data Symbol
91         data TrName = TrNameS Addr# | TrNameD [Char]
92         data TyCon = TyCon Word# Word# Module TrName