1# Changes in version 0.12.3.0
2
3 * Fix performance regression due to introduction of `keepAlive#` primop in ghc-9.0: [#372](https://github.com/haskell/vector/pull/372)
4
5 * Add monadic functions for mutable vectors: [#338](https://github.com/haskell/vector/pull/338)
6
7   * Added folds for monadic functions: `mapM_`, `imapM_`, `forM_`, `iforM_`,
8     `foldl`, `foldl'`, `foldM`, `foldM'`, `ifoldl`, `ifoldl'`, `ifoldM`,
9     `ifoldM'`
10   * Added `modifyM` and `unsafeModifyM` for mutable vectors
11   * Added `generate` and `generateM` for mutable vectors
12
13# Changes in version 0.12.2.0
14
15 * Add `MINIMAL` pragma to `Vector` & `MVector` type classes: [#11](https://github.com/haskell/vector/issues/11)
16 * Export `unstreamM` from`from Data.Vector.Generic`: [#70](https://github.com/haskell/vector/issues/70)
17 * New functions: `unfoldrExactN` and `unfoldrExactNM`: [#140](https://github.com/haskell/vector/issues/140)
18 * Added `iforM` and `iforM_`: [#262](https://github.com/haskell/vector/issues/262)
19 * Added `MonadFix` instance for boxed vectors: [#178](https://github.com/haskell/vector/issues/178)
20 * Added `uncons` and `unsnoc`: [#212](https://github.com/haskell/vector/issues/212)
21 * Added `foldMap` and `foldMap'`: [#263](https://github.com/haskell/vector/issues/263)
22 * Added `isSameVector` for storable vectors
23 * Added `toArray`, `fromArray`, `toMutableArray` and `fromMutableArray`
24 * Added `iscanl`, `iscanl'`, `iscanr`, `iscanr'` to `Primitive`, `Storable` and `Unboxed`
25 * Added `izipWithM`, `izipWithM_`, `imapM` and `imapM_` to `Primitive` and `Storable`
26 * Added `ifoldM`, `ifoldM'`, `ifoldM_` and `ifoldM'_` to `Primitive` and `Storable`
27 * Added `eqBy` and `cmpBy`
28 * Added `findIndexR` to `Generic`: [#172](https://github.com/haskell/vector/issues/172)
29 * Added `catMaybes`: [#329](https://github.com/haskell/vector/issues/329)
30 * Added `mapMaybeM` and `imapMaybeM`: [#183](https://github.com/haskell/vector/issues/183)
31
32# Changes in version 0.12.1.2
33
34 * Fix for lost function `Data.Vector.Generic.mkType`: [#287](https://github.com/haskell/vector/issues/287)
35
36# Changes in version 0.12.1.1 (deprecated)
37 * add semigrioups dep to test suite so CI actually runs again on GHC < 8
38
39# Changes in version 0.12.1.0 (deprecated)
40 * Fix integer overflows in specializations of Bundle/Stream enumFromTo on Integral types
41 * Fix possibility of OutOfMemory with `take` and very large arguments.
42 * Fix `slice` function causing segfault and not checking the bounds properly.
43 * updated specialization rule for EnumFromTo on Float and Double
44  to make sure it always matches the version in GHC Base (which changed as of 8.6)
45  Thanks to Aleksey Khudyakov @Shimuuar for this fix.
46 * fast rejection short circuiting in eqBy operations
47 * the O2 test suite now has reasonable memory usage on every GHC version,
48    special thanks to Alexey Kuleshevich (@lehins).
49 * The `Mutable` type family is now injective on GHC 8.0 or later.
50 * Using empty `Storable` vectors no longer results in division-by-zero
51   errors.
52 * The `Data` instances for `Vector` types now have well defined
53   implementations for `toConstr`, `gunfold`, and `dataTypeOf`.
54 * New function: `partitionWith`.
55 * Add `Unbox` instances for `Identity`, `Const`, `Down`, `Dual`, `Sum`,
56   `Product`, `Min`, `Max`, `First`, `Last`, `WrappedMonoid`, `Arg`, `Any`,
57   `All`, `Alt`, and `Compose`.
58 * Add `NFData1` instances for applicable `Vector` types.
59
60# Changes in version 0.12.0.3
61  * Monad Fail support
62
63# Changes in version 0.12.0.2
64  * Fixes issue #220, compact heap operations crashing on boxed vectors constructed
65    using traverse.
66  * backport injective type family support
67  * Cleanup the memset code internal to storable vector modules to be
68    compatible with future Primitive releases
69
70# Changes in version 0.12.0.1
71
72 * Make sure `length` can be inlined
73 * Include modules that test-suites depend on in other-modules
74
75# Changes in version 0.12.0.0
76
77 * Documentation fixes/additions
78 * New functions: createT, iscanl/r, iterateNM, unfoldrM, uniq
79 * New instances for various vector types: Semigroup, MonadZip
80 * Made `Storable` vectors respect memory alignment
81 * Changed some macros to ConstraintKinds
82   - Dropped compatibility with old GHCs to support this
83 * Add `Eq1`, `Ord1`, `Show1`, and `Read1` `Vector` instances, and related
84   helper functions.
85 * Relax context for `Unbox (Complex a)`.
86
87# Changes in version 0.11.0.0
88
89 * Define `Applicative` instances for `Data.Vector.Fusion.Util.{Box,Id}`
90 * Define non-bottom `fail` for `instance Monad Vector`
91 * New generalized stream fusion framework
92 * Various safety fixes
93   - Various overflows due to vector size have been eliminated
94   - Memory is initialized on creation of unboxed vectors
95 * Changes to SPEC usage to allow building under more conditions
96
97# Changes in version 0.10.12.3
98
99 * Allow building with `primtive-0.6`
100
101# Changes in version 0.10.12.2
102
103 * Add support for `deepseq-1.4.0.0`
104
105# Changes in version 0.10.12.1
106
107 * Fixed compilation on non-head GHCs
108
109# Changes in version 0.10.12.0
110
111 * Export MVector constructor from Data.Vector.Primitive to match Vector's
112   (which was already exported).
113
114 * Fix building on GHC 7.9 by adding Applicative instances for Id and Box
115
116# Changes in version 0.10.11.0
117
118 * Support OverloadedLists for boxed Vector in GHC >= 7.8
119
120# Changes in version 0.10.10.0
121
122 * Minor version bump to rectify PVP violation occured in 0.10.9.3 release
123
124# Changes in version 0.10.9.3 (deprecated)
125
126 * Add support for OverloadedLists in GHC >= 7.8
127
128# Changes in version 0.10.9.2
129
130 * Fix compilation with GHC 7.9
131
132# Changes in version 0.10.9.1
133
134 * Implement poly-kinded Typeable
135
136# Changes in version 0.10.0.1
137
138 * Require `primitive` to include workaround for a GHC array copying bug
139
140# Changes in version 0.10
141
142 * `NFData` instances
143 * More efficient block fills
144 * Safe Haskell support removed
145