contiguous
Unified interface for primitive arrays
https://github.com/byteverse/contiguous
LTS Haskell 22.36: | 0.6.4.2 |
Stackage Nightly 2024-10-05: | 0.6.4.2 |
Latest on Hackage: | 0.6.4.2 |
BSD-3-Clause licensed by Andrew Martin
Maintained by [email protected]
This version can be pinned in stack with:
contiguous-0.6.4.2@sha256:5b9908787d229f98e80c03030439697863aaf7c42a943bfb07a4481d191e3839,2148
Module documentation for 0.6.4.2
- Data
- Data.Primitive
Depends on 5 packages(full list with versions):
Used by 1 package in nightly-2024-10-05(full list with versions):
contiguous
The contiguous typeclass parameterises over a contiguous array type. This allows us to have a common API to a number of contiguous array types and their mutable counterparts, namely those in primitive, making the experience of working with the primitive datatypes much cleaner and uniform.
Changes
Revision history for contiguous
0.6.4.2 – 2024-02-06
- Restore support for versions of base that do not export
liftA2
from the prelude.
0.6.4.1 – 2024-02-05
- Update package metadata.
0.6.4.0 – 2023-06-28
- Make it work with primitive-unlifted-2.1, which drops support for older primitive-unlifted.
- Add
quintupleton
andsextupleton
. - Add
construct(1|2|3|4|5|6)
aliases for constructing arrays with a small known number of elements.
0.6.3.0 – 2022-12-07
- Add strict
foldrM
0.6.2.0 – 2022-04-13
- Make benchmarks build
- Add strict
ifoldlZipWith
andfoldlZipWith
0.6.1.1 – 2022-02-16
- Allow building with GHC 9.2.1.
- Drop support for GHC 8.8 and earlier.
0.6.1.0 – 2021-09-01
- Add
itraverseP
- Add
deleteAt
andifoldr
0.6.0 – 2021-08-28
- Add
Slice
,MutableSlice
. - Split
Contiguous
intoContiguousSlice
andContiguous
. - Add
shrink
andunsafeShrinkAndFreeze
0.5.2 – 2021-08-11
- Add
ifoldlM'
. - Add
foldrZipWith
andifoldrZipWith
. - Add
foldlZipWithM'
andifoldlZipWithM'
. - Add
all
andany
. - Add
run
. Use it internally to accerelate prevent GHC from boxing results inrunST
. - Add
quadrupleton
.
0.5.1 – 2020-06-30
- Add
izipWith
. - Compatibility with
primitive-0.7.1.0
.
0.5 – 2019-07-23
- 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
primitive
package - 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'
.
0.4.0.1 – 2019-05-17
- Allow building with
primitive-0.7
. This required depending on theprimitive-unlifted
package to provide the removedUnliftedArray
api.
0.4 – 2019-05-16
- 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
replicate
functions to make more sense (#19) - Add
Contiguous
instance forSmallArray
- Attempt to mark everything as inline (#18)
- Achieve 100% doc coverage, organise exports a lot more (mimicking vector). Various haddock fixes
- Make
toListMutable
strict in the accumulator - Change all instances of
return
topure
- Add initial test suite (some unit tests that check implementations against base/vector versions of the same functions)
- Export
unsafeFreeze
,copy
,write
, - Rename
sameMutable
toequalsMutable
0.3.3.0 – 2019-03-24
- Add
freeze
as a method toContiguous
- Add more folds
- Mark more functions as INLINEABLE
0.3.2.0 – 2019-01-02
- Add
thaw
as a method toContiguous
0.3.1.0 – 2018-10-19
- Add
singleton
,doubleton
,tripleton
as methods toContiguous
- Add
map'
,imap
,mapMutable'
,imapMutable'
0.3.0.0 – 2018-09-06
- Document the need for
Always
- Generalise API: from
ST s
toPrimMonad m
- Add NFData
rnf
function for deeply evaluatingContiguous
arrays. - Add function
equals
, for detecting if two arrays in memory are the same. - Add hashing function.
- Make
map
able to produce a new array type. - Add
replicate
,null
as methods toContiguous
. - Add
traverse
,itraverse
,traverseP
,foldMap
0.2.0.0 – 2018-06-07
- Add cabal metadata: category, proper synopsis/description
- Use primitive-0.6.4.0
0.1.0.0 – 2018-05-31
- Initial version.