- Implement Contiguous and ContiguousU for SmallUnliftedArray
- Re-export Small(Mutable)UnliftedArray from Data.Primitive.Contiguous
- Use functions from newer primitive and primitive-unlifted. The implementation of UnliftedArray in primitive-unlifted-2.1 penalizes the creation of an uninitialized unlifted array. When shrinking and resizing unlifted arrays, there are primitives that we can use to avoid this.
- Restore support for versions of base that do not export
liftA2from the prelude.
- Update package metadata.
- Make it work with primitive-unlifted-2.1, which drops support for older primitive-unlifted.
- Add
quintupletonandsextupleton. - Add
construct(1|2|3|4|5|6)aliases for constructing arrays with a small known number of elements.
- Add strict
foldrM
- Make benchmarks build
- Add strict
ifoldlZipWithandfoldlZipWith
- Allow building with GHC 9.2.1.
- Drop support for GHC 8.8 and earlier.
- Add
itraverseP - Add
deleteAtandifoldr
- Add
Slice,MutableSlice. - Split
ContiguousintoContiguousSliceandContiguous. - Add
shrinkandunsafeShrinkAndFreeze
- Add
ifoldlM'. - Add
foldrZipWithandifoldrZipWith. - Add
foldlZipWithM'andifoldlZipWithM'. - Add
allandany. - Add
run. Use it internally to accerelate prevent GHC from boxing results inrunST. - Add
quadrupleton.
- Add
izipWith. - Compatibility with
primitive-0.7.1.0.
- Add
generateM,reverseSlice,swap,catMaybes,zipWith,zip,lefts,rights,partitionEithers,elem,find,maximum/minimum,maximumBy/minimumBy,asum,mapM(_),forM(_),for(_),sequence(_),(<$),ap,scanl,scanl',iscanl,iscanl',prescanl,prescanl',iprescanl,iprescanl' - Re-export Array types from the
primitivepackage - Expand unit test suite to include all added functions
- Expand laws test suite to test Foldable/IsList/Traversable laws in addition to Functor/Applicative
- Add benchmark suite that measures allocations
- Fix performance issue with fold functions that caused huge increase in allocations when partially-applied. Partially-applied folds now perform as well as fully-applied.
- Make sure all functions are marked INLINE. Last function not marked
as inline was
imap'.
- Allow building with
primitive-0.7. This required depending on theprimitive-unliftedpackage to provide the removedUnliftedArrayapi.
- Add
convert,filter,ifilter,itraverse(_)(#6),imap',unsafeFromListN,unsafeFromListReverseMutableN,ifoldr',foldl,mapMutable,imapMutable,reverse,reverseMutable,replicateMutableM,create,createT,unsafeFromListReverseN,generate,generateMutable,iterate,iterateMutableN,iterateMutableNM,unfoldr,unfoldrMutable,toList,toListMutable,fromListMutableN,fromListMutable,fromListN,fromList,modify,modify',enumFromN,enumFromMutableN - Refactor
replicatefunctions to make more sense (#19) - Add
Contiguousinstance forSmallArray - Attempt to mark everything as inline (#18)
- Achieve 100% doc coverage, organise exports a lot more (mimicking vector). Various haddock fixes
- Make
toListMutablestrict in the accumulator - Change all instances of
returntopure - Add initial test suite (some unit tests that check implementations against base/vector versions of the same functions)
- Export
unsafeFreeze,copy,write, - Rename
sameMutabletoequalsMutable
- Add
freezeas a method toContiguous - Add more folds
- Mark more functions as INLINEABLE
- Add
thawas a method toContiguous
- Add
singleton,doubleton,tripletonas methods toContiguous - Add
map',imap,mapMutable',imapMutable'
- Document the need for
Always - Generalise API: from
ST stoPrimMonad m - Add NFData
rnffunction for deeply evaluatingContiguousarrays. - Add function
equals, for detecting if two arrays in memory are the same. - Add hashing function.
- Make
mapable to produce a new array type. - Add
replicate,nullas methods toContiguous. - Add
traverse,itraverse,traverseP,foldMap
- Add cabal metadata: category, proper synopsis/description
- Use primitive-0.6.4.0
- Initial version.