-
Notifications
You must be signed in to change notification settings - Fork 5
/
changelog
121 lines (90 loc) · 4.54 KB
/
changelog
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
Changes in version next
* the O2 test suite now has reasonable memory usage on every GHC version,
special thanks to Alexey Kuleshevich (@lehins).
* `maximumBy` now behaves like its counterpart in `Data.List` in that if
`maximumBy` has to choose between several elements which could be
considered the maximum, it will now choose the last element (previously,
it would choose the first element). Similarly, `maxIndexBy` will also
now pick the last element if several elements could be considered the
maximum.
* The role signatures on several `Vector` types were too permissive, so they
have been tightened up:
* The role signature for `Data.Vector.Mutable.MVector` is now
`type role MVector nominal representational` (previously, both arguments
were `phantom`).
* The role signature for `Data.Vector.Primitive.Vector` is now
`type role Vector representational` (previously, it was `phantom`).
* The role signature for `Data.Vector.Storable.Vector` is now
`type role Vector nominal` (previous, it was `phantom`), and the signature
for `Data.Vector.Storable.Mutable.MVector` is now
`type role MVector nominal nominal` (previous, both arguments were
`phantom`).
We pick `nominal` for the role of the last argument instead of
`representational` since the internal structure of a `Storable` vector
is determined by the `Storable` instance of the element type, and it is
not guaranteed that the `Storable` instances between two
representationally equal types will preserve this internal structure.
One consequence of this choice is that it is no longer possible to
`coerce` between `Storable.Vector a` and `Storable.Vector b` if `a` and
`b` are nominally distinct but representationally equal types. We now
provide `unsafeCoerce{M}Vector` functions in
`Data.Vector.Storable{.Mutable}` to allow this (the onus is on the user
to ensure that no `Storable` invariants are broken when using these
functions).
* The `Mutable` type family is now injective on GHC 8.0 or later.
* Using empty `Storable` vectors no longer results in division-by-zero
errors.
* The `Data` instances for `Vector` types now have well defined
implementations for `toConstr`, `gunfold`, and `dataTypeOf`.
* New function: `partitionWith`.
* Add `Unbox` instances for `Identity`, `Const`, `Down`, `Dual`, `Sum`,
`Product`, `Min`, `Max`, `First`, `Last`, `WrappedMonoid`, `Arg`, `Any`,
`All`, `Alt`, and `Compose`.
* Add `NFData1` instances for applicable `Vector` types.
Changes in version 0.12.0.1
* Make sure `length` can be inlined
* Include modules that test-suites depend on in other-modules
Changes in version 0.12.0.0
* Documentation fixes/additions
* New functions: createT, iscanl/r, iterateNM, unfoldrM, uniq
* New instances for various vector types: Semigroup, MonadZip
* Made `Storable` vectors respect memory alignment
* Changed some macros to ConstraintKinds
- Dropped compatibility with old GHCs to support this
* Add `Eq1`, `Ord1`, `Show1`, and `Read1` `Vector` instances, and related
helper functions.
* Relax context for `Unbox (Complex a)`.
Changes in version 0.11.0.0
* Define `Applicative` instances for `Data.Vector.Fusion.Util.{Box,Id}`
* Define non-bottom `fail` for `instance Monad Vector`
* New generalized stream fusion framework
* Various safety fixes
- Various overflows due to vector size have been eliminated
- Memory is initialized on creation of unboxed vectors
* Changes to SPEC usage to allow building under more conditions
Changes in version 0.10.12.3
* Allow building with `primtive-0.6`
Changes in version 0.10.12.2
* Add support for `deepseq-1.4.0.0`
Changes in version 0.10.12.1
* Fixed compilation on non-head GHCs
Changes in version 0.10.12.0
* Export MVector constructor from Data.Vector.Primitive to match Vector's
(which was already exported).
* Fix building on GHC 7.9 by adding Applicative instances for Id and Box
Changes in version 0.10.11.0
* Support OverloadedLists for boxed Vector in GHC >= 7.8
Changes in version 0.10.10.0
* Minor version bump to rectify PVP violation occured in 0.10.9.3 release
Changes in version 0.10.9.3 (deprecated)
* Add support for OverloadedLists in GHC >= 7.8
Changes in version 0.10.9.2
* Fix compilation with GHC 7.9
Changes in version 0.10.9.1
* Implement poly-kinded Typeable
Changes in version 0.10.0.1
* Require `primitive` to include workaround for a GHC array copying bug
Changes in version 0.10
* `NFData` instances
* More efficient block fills
* Safe Haskell support removed