Skip to content

massiv-1.0.2

@lehins lehins tagged this 15 Aug 00:07
* Addition of `Iterator` type class:
  * Addition of `RowMajor`, `RowMajorLinear` and `RowMajorUnbalanced` iterators.
  * New `Iter` benchmark for iterators.
  * RowMajor is an efficient iterator that scales well to arbitrary dimension
  * Implementation of Iterator functionality with accumulator
  * Switch parallel left fold to new iterator
* Improvements to functions that do the looping and scheduling:
  * Addition of `loopNextA_` and `loopNextM`
  * Deprecate `loopM_` in favor of `loopA_`
  * Addition of `loopA` and `loopF` for applicative iterators
  * Addition of `iloopA_` and `iloopM`
  * Addition of `nextMaybeF`
  * Addition of `iterLinearST_`, `iterLinearAccST_` and `iterLinearAccST`
  * Addition of an optimized `scheduleMassivWork` for internal use
  * Addition of a new workhorse: `splitWorkWithFactorST`
* Changes to `Index` class:
  * Deprecate `iterM_` in favor of `iterA_`
  * Adititon of sequential iterators: `iterTargetRowMajorA_`,
    `iterTargetRowMajorAccM` needed for `RowMajor` iterator
  * Addition of parallelizable iterators: `iterRowMajorST`,
    `iterTargetRowMajorAccST`, `iterTargetRowMajorAccST_` needed
    for `RowMajor` iterator
  * Addition of `iterF` for using with applicative iterators.
  * Addition of `stepNextMF` for streaming iteration of multi-dimensional
    arrays.
* Addition of `makeSplitSeedArray` and `generateSplitSeedArray`
* Addition of `repr` and `quicksortAs` variants.
* Fix backwards compatibility with ghc-8.0
* Get rid of dependency on genvalidity: too many compatibility issues for
  little gain
* Pin quickcheck-classes-base in stack.yaml
* Move some tests into separate module to relief some compilation memory burden
* Add some haddock, update changelog. Disable lts-16 windows build on CI
* Ensure the correct `.stack-work*` is being used across all `lts`es
* List talk at Haskell Exchange
* Format and fixup readme badges
* Introduce `PrefIndex` and `unsafePrefIndex`: a preference when indexing into
  multidimensional `Source` arrays. Adopt it where possible for left and right
  folds, traversals, but not zipping
* Improve multi-dimensional indices for streams
* Get rid of build warnings for ghc-9.4
  * Make `Monoid` and `Monad` instances forward compatible
* Compatibility with `vector-0.13`:
  * Fix `Unbox` instance for `IxN`
  * Fix safety of boxed vector conversion: `toBoxedVector`/`fromBoxedVector`
* Remove a couple of stack lock files that accidentally got in
* Cleanup bench stack files
* Add `Random` benchmark
* Add extra property tests
* Update versions. Remove deprecated benchmark
* Use newer `git-modtime.hs` on CI
* Update the year in the license
* Re-export Manifest realetd functions from `Data.Massiv.Array.Manifest`
  as a migration strategy for the move in the next minor version bump.
Assets 2