primitive v0.6.4.0 Release Notes
Release Date: 2018-05-30 // almost 6 years ago-
Introduce
Data.Primitive.PrimArray
, which offers types and function for dealing with aByteArray
tagged with a phantom type variable for tracking the element type.Implement
isByteArrayPinned
andisMutableByteArrayPinned
.Add
Eq1
,Ord1
,Show1
, andRead1
instances forArray
andSmallArray
.Improve the test suite. This includes having property tests for typeclasses from
base
such asEq
,Ord
,Functor
,Applicative
,Monad
,IsList
,Monoid
,Foldable
, andTraversable
.Fix the broken
IsList
instance forByteArray
. The old definition would allocate a byte array of the correct size and then leave the memory unitialized instead of writing the list elements to it.Fix the broken
Functor
instance forArray
. The old definition would allocate an array of the correct size with thunks for erroring installed at every index. It failed to replace these thunks with the result of the function applied to the elements of the argument array.Fix the broken
Applicative
instances ofArray
andSmallArray
. The old implementation of<*>
forArray
failed to initialize some elements but correctly initialized others in the resultingArray
. It is unclear what the old behavior of<*>
was forSmallArray
, but it was incorrect.Fix the broken
Monad
instances forArray
andSmallArray
.Fix the implementation of
foldl1
in theFoldable
instances forArray
andSmallArray
. In both cases, the old implementation simply returned the first element of the array and made no use of the other elements in the array.Fix the implementation of
mconcat
in theMonoid
instance forSmallArray
.Implement
Data.Primitive.Ptr
, implementations ofPtr
functions that require aPrim
constraint instead of aStorable
constraint.Add
PrimUnlifted
instances forTVar
andMVar
.Use
compareByteArrays#
for theEq
andOrd
instances ofByteArray
when building with GHC 8.4 and newer.Add
Prim
instances for lots of types inForeign.C.Types
andSystem.Posix.Types
.Reexport
Data.Primitive.SmallArray
andData.Primitive.UnliftedArray
fromData.Primitive
.Add fold functions and map function to
Data.Primitive.UnliftedArray
. Add typeclass instances forIsList
,Ord
, andShow
.Add
defaultSetByteArray#
anddefaultSetOffAddr#
toData.Primitive.Types
.Add
Data.Primitive.MVar
, a replacement forControl.Concurrent.MVar
that can run in anyPrimMonad
instead of justIO
. It is not a full replacement. Notably, it's missing masking functions and support for adding finalizers.