Removed reinterpret-cast dependency. Embedded the code from this library instead.
[packages/binary.git] / changelog.md
1 binary
2 ======
3
4 binary-0.8.3.0
5 --------------
6
7 - Replace binary's home grown `Builder` with `Data.ByteString.Builder`.
8   `Data.Binary.Builder` now exports `Data.ByteString.Builder.Builder`.
9 - Add `putList :: [a] -> Put` to the `Binary` class. This is used to be able to
10   use the list writing primitives of the new Builder. This brought a number of speedups;
11   Encoding a String is now 70% faster. [Word8] is 76% faster, which also makes
12   Integer 34% faster. Similar numbers for all [IntXX] and [WordXX].
13 - Fail gracefully within `Get` when decoding `Bool` and `Ordering`. Previously
14   when decoding invalid data these instances would fail with `error`.
15 - Add Binary instance for `Complex a`.
16 - Add Monoid and Semigroup instance for `Put`.
17
18 binary-0.8.2.1
19 --------------
20
21 - Fix compilation error when using older GHC versions and clang. clang barfs on some of its CPP input (#105).
22
23 binary-0.8.2.0
24 --------------
25
26 - When using GHC >= 8, `Data.Binary.Get.Get` implements MonadFail and delegates its `fail` to `MonadFail.fail`.
27
28 binary-0.8.1.0
29 --------------
30
31 - Add binary instance for `Data.ByteString.Short`.
32 - Add get/put functions for all Int sizes to `Data.Binary.Builder`, `Data.Binary.Get` and `Data.Binary.Put`.
33
34 binary-0.8.0.1
35 --------------
36
37 - Address compiler warnings.
38
39 binary-0.8.0.0
40 --------------
41
42 - Added binary instance for `Version` from `Data.Version`.
43 - Added binary instance for `Void` from GHC 7.10.1.
44 - Added binary instance for `(Data.Fixed a)` from GHC 7.8.1.
45 - Added semigroup instance for `Data.Binary.Builder` from GHC 8.0.
46
47 binary-0.7.6.1
48 --------------
49
50 - Fix compilation for GHC == 7.2.*.
51
52 binary-0.7.6.0
53 --------------
54
55 - Added binary instance for GHC.Fingerprint (from GHC >= 7.4).
56
57 binary-0.7.5.0
58 --------------
59
60 - Fix performance bug that was noticable when you get a big strict ByteString
61   and the input to the decoder consists of many small chunks.
62     - https://github.com/kolmodin/binary/issues/73
63     - https://github.com/kolmodin/binary/pull/76
64 - Fix memory leak when decoding Double and Float.
65     - Commit 497a181c083fa9faf7fa3aa64d1d8deb9ac76ecb
66 - We now require QuickCheck >= 2.8. Remove our version of arbitrarySizedNatural.
67
68 binary-0.7.4.0
69 --------------
70
71 - Some invalid UTF-8 strings caused an exception when decoded. Those errors will
72   now now fail in the Get monad instead. See #70.
73   Patch contributed by @ttuegel.
74
75 binary-0.7.3.0
76 --------------
77
78 - Add Binary instance for Natural (only with base > 4.8).
79
80 binary-0.7.2.3
81 --------------
82
83 - Remove INLINEs from GBinary/GSum methods. These interact very badly with the
84   GHC 7.9.x simplifier. See also;
85      - https://github.com/kolmodin/binary/pull/62
86      - https://ghc.haskell.org/trac/ghc/ticket/9630
87      - https://ghc.haskell.org/trac/ghc/ticket/9583
88
89 binary-0.7.2.2
90 --------------
91
92 - Make import of GHC.Base future-proof (https://github.com/kolmodin/binary/pull/59).
93
94 binary-0.7.2.1
95 --------------
96
97 - Fix to compile on GHC 6.10.4 and older (https://github.com/kolmodin/binary/issues/55).
98
99 binary-0.7.2.0
100 --------------
101
102 - Add `isolate :: Int -> Get a -> Get a`.
103 - Add `label :: String -> Get a -> Get a`.
104
105 binary-0.7.1.0
106 --------------
107
108 - Add `lookAheadE :: Get (Either a b) -> Get (Either a b)`.
109 - Add MonadPlus instance for Get. 
110
111
112 binary-0.7.0.1
113 --------------
114
115 - Updates to documentation.
116
117 binary-0.7.0.0
118 --------------
119
120 - Add `lookAhead :: Get a -> Get a`.
121 - Add `lookAheadM :: Get (Maybe a) -> Get (Maybe a)`.
122 - Add Alternative instance for Get (provides `<|>`).
123 - Add `decodeOrFail :: Binary a => L.ByteString -> Either (L.ByteString, ByteOffset, String) (L.ByteString, ByteOffset, a)`
124 - Add `decodeFileOrFail :: Binary a => FilePath -> IO (Either (ByteOffset, String) a)`.
125 - Remove `Ord` class constraint from `Set` and `Map` Binary instances.
126
127 binary-0.6.4
128 ------------
129
130 - Add `runGetOrFail :: Get a -> L.ByteString -> Either (L.ByteString, ByteOffset, String) (L.ByteString, ByteOffset, a)`.
131
132 binary-0.6.3
133 ------------
134
135 - Documentation tweeks, internal restructuring, more tests.
136
137 binary-0.6.2
138 ------------
139
140 - `some` and `many` more efficient.
141 - Fix bug where `bytesRead` returned the wrong value.
142 - Documentation improvements.
143
144 binary-0.6.1
145 ------------
146
147 - Fix bug where a decoder could return with `Partial` after the previous reply was `Nothing`.
148
149 binary-0.6.0.0
150 --------------