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