Log message:
hs-vector: update to 0.13.0.0.
# Changes in version 0.13.0.0
* `mkType` from `Data.Vector.Generic` is deprecated in favor of
`Data.Data.mkNoRepType`
* 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`). [#224](https://github.com/haskell/vector/pull/224)
* The role signature for `Data.Vector.Primitive.Vector` is now
`type role Vector nominal` (previously, it was `phantom`).
The role signature for `Data.Vector.Primitive.Mutable.MVector` is now
`type role MVector nominal nominal` (previously, both arguments were
`phantom`). [#316](https://github.com/haskell/vector/pull/316)
* 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`). [#235](https://github.com/haskell/vector/pull/235)
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` and `unsafeCast` functions to allow this (the onus
is on the user to ensure that no `Storable` invariants are broken when
using these functions).
* Methods of type classes `Data.Vector.Generic.Mutable.MVector` and
`Data.Vector.Generic.Vector` use concrete monads (`ST`, etc) istead of being
polymorphic (`PrimMonad`, etc). \
[#335](https://github.com/haskell/vector/pull/335).
This makes it possible to derive `Unbox` with:
* `GeneralizedNewtypeDeriving`
* via `UnboxViaPrim` and `Prim` instance
* via `As` and `IsoUnbox` instance: \
[#378](https://github.com/haskell/vector/pull/378)
* Add `MonadFix` instance for boxed vectors: \
[#312](https://github.com/haskell/vector/pull/312)
* Re-export `PrimMonad` and `RealWorld` from mutable vectors:
[#320](https://github.com/haskell/vector/pull/320)
* Add `maximumOn` and `minimumOn`: \
[#356](https://github.com/haskell/vector/pull/356)
* The functions `scanl1`, `scanl1'`, `scanr1`, and `scanr1'` for immutable
vectors are now defined when given empty vectors as arguments,
in which case they return empty vectors. This new behavior is consistent
with the one of the corresponding functions in `Data.List`.
Prior to this change, applying an empty vector to any of those functions
resulted in an error. This change was introduced in:
[#382](https://github.com/haskell/vector/pull/382)
* Change allocation strategy for `unfoldrN`: \
[#387](https://github.com/haskell/vector/pull/387)
* Remove `CPP` driven error reporting in favor of `HasCallStack`:
[#397](https://github.com/haskell/vector/pull/397)
* Remove redundant `Storable` constraints on to/from `ForeignPtr` conversions:
[#394](https://github.com/haskell/vector/pull/394)
* Add `unsafeCast` to `Primitive` vectors: \
[#401](https://github.com/haskell/vector/pull/401)
* Make `(!?)` operator strict: [#402](https://github.com/haskell/vector/pull/402)
* Add `readMaybe`: [#425](https://github.com/haskell/vector/pull/425)
* Add `groupBy` and `group` for `Data.Vector.Generic` and the specialized
version in `Data.Vector`, `Data.Vector.Unboxed`, `Data.Vector.Storable` and
`Data.Vector.Primitive`. [#427](https://github.com/haskell/vector/pull/427)
* Add `toArraySlice` and `unsafeFromArraySlice` functions for conversion to and
from the underlying boxed `Array`: \
[#434](https://github.com/haskell/vector/pull/434)
|
Log message:
Update to vector-0.12.3.1
Changes in version 0.12.3.1
* Bugfix for ghcjs and Double memset for Storable vector: #410
* Avoid haddock bug: #383
* Improve haddock and doctests
* Disable problematic tests with -boundschecks #407
Changes in version 0.12.3.0
* Fix performance regression due to introduction of keepAlive# primop in
ghc-9.0: #372
* Add monadic functions for mutable vectors: #338
* Added folds for monadic functions: mapM_, imapM_, forM_, iforM_, foldl,
foldl', foldM, foldM', ifoldl, ifoldl', ifoldM, ifoldM'
* Added modifyM and unsafeModifyM for mutable vectors
* Added generate and generateM for mutable vectors
Changes in version 0.12.2.0
* Add MINIMAL pragma to Vector & MVector type classes: #11
* Export unstreamM fromfrom Data.Vector.Generic: #70
* New functions: unfoldrExactN and unfoldrExactNM: #140
* Added iforM and iforM_: #262
* Added MonadFix instance for boxed vectors: #178
* Added uncons and unsnoc: #212
* Added foldMap and foldMap': #263
* Added isSameVector for storable vectors
* Added toArray, fromArray, toMutableArray and fromMutableArray
* Added iscanl, iscanl', iscanr, iscanr' to Primitive, Storable and Unboxed
* Added izipWithM, izipWithM_, imapM and imapM_ to Primitive and Storable
* Added ifoldM, ifoldM', ifoldM_ and ifoldM'_ to Primitive and Storable
* Added eqBy and cmpBy
* Added findIndexR to Generic: #172
* Added catMaybes: #329
* Added mapMaybeM and imapMaybeM: #183
Changes in version 0.12.1.2
* Fix for lost function Data.Vector.Generic.mkType: #287
Changes in version 0.12.1.1 (deprecated)
* add semigrioups dep to test suite so CI actually runs again on GHC < 8
Changes in version 0.12.1.0 (deprecated)
* Fix integer overflows in specializations of Bundle/Stream enumFromTo on
Integral types
* Fix possibility of OutOfMemory with take and very large arguments.
* Fix slice function causing segfault and not checking the bounds properly.
* updated specialization rule for EnumFromTo on Float and Double to make
sure it always matches the version in GHC Base (which changed as of 8.6)
Thanks to Aleksey Khudyakov @Shimuuar for this fix.
* fast rejection short circuiting in eqBy operations
* the O2 test suite now has reasonable memory usage on every GHC version,
special thanks to Alexey Kuleshevich (@lehins).
* 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.
|