You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce LoadS that will only be able to load arrays sequentially. This way it will be visible at the type level in the majority of the functions how a delayed array will be loaded
Construct will no longer have knowledge about computation strategies, but Load will:
Move setComp to Load
possibly create separate makeArrayS and makeArrayLinearS
Add type synonyms Matrix and Vector (not really breaking change, but many use those names and could easily introduce a conflict)
Move functions from Data.Massiv.Array.Stencil.Unsafe into Data.Massiv.Array.Unsafe
Remove traverseAR, itraverseAR, traversePrimR and itraversePrimR
Move all pure partial functions (eg. index') into a separate module: Data.Massiv.Array.Partial and document all possible exception the safe synonyms can throw.
Source will now have unsafeLinearSlice. Implement uncons, unsnoc, tail, head, init and last with it
Add take, drop :: Source r ix e => Int -> Array r ix e -> Array D Ix1 e (using unsafeLinearSlice)
add stoList and sfromList, sfromListN
Get rid of Show instance for Value. Export constructor from unsafe. Add Show and Eq in test suite as orphans
Consider switching applyStencil and mapStencil to return DL array, with some helper functions still returning DW.
rename withMArray to withMArray_, withMArrayS to withMArrayS_ and withMArrayST to withMArrayST_
Add new functions that, just as createArray*, return an element, which is an artifact of computation:
withMArray :: Array r ix e -> (Scheduler m b -> MArray RealWorld r ix e -> m a) -> m ([b], Array r ix e)
withMArrayS :: Array r ix e -> (MArray (PrimState m) r ix e -> m a) -> m (a, Array r ix e)
withMArrayST :: Array r ix e -> (forall s . MArray s r ix e -> ST s a) -> (a, Array r ix e)
unfoldrPrimM_, iunfoldrPrimM_, unfoldrPrimM, iunfoldrPrimM, unfoldlPrimM_, unfoldlPrimM_, unfoldlPrimM, iunfoldlPrimM (also for all above avoid filling new array, the all use new instead of unsafeNew)
make Data.Massiv.Array.Manifest.Vector.Stream internal but exportable. Move to Data.Massiv.Vector.Stream
Add castToBuilder
The text was updated successfully, but these errors were encountered:
Most of these have been implemented and a new release is up on Hackage. Ones that have not will either go into the next major release or will not be implemented at all. Closing.
New release is not too far along:
LoadS
that will only be able to load arrays sequentially. This way it will be visible at the type level in the majority of the functions how a delayed array will be loadedConstruct
will no longer have knowledge about computation strategies, butLoad
will:setComp
toLoad
makeArrayS
andmakeArrayLinearS
Matrix
andVector
(not really breaking change, but many use those names and could easily introduce a conflict)Data.Massiv.Array.Stencil.Unsafe
intoData.Massiv.Array.Unsafe
traverseAR
,itraverseAR
,traversePrimR
anditraversePrimR
index'
) into a separate module:Data.Massiv.Array.Partial
and document all possible exception the safe synonyms can throw.Source
will now haveunsafeLinearSlice
. Implementuncons
,unsnoc
,tail
,head
,init
andlast
with ittake
,drop :: Source r ix e => Int -> Array r ix e -> Array D Ix1 e
(usingunsafeLinearSlice
)stoList
andsfromList
,sfromListN
Show
instance forValue
. Export constructor from unsafe. Add Show and Eq in test suite as orphansapplyStencil
andmapStencil
to returnDL
array, with some helper functions still returningDW
.withMArray
towithMArray_
,withMArrayS
towithMArrayS_
andwithMArrayST
towithMArrayST_
createArray*
, return an element, which is an artifact of computation:withMArray :: Array r ix e -> (Scheduler m b -> MArray RealWorld r ix e -> m a) -> m ([b], Array r ix e)
withMArrayS :: Array r ix e -> (MArray (PrimState m) r ix e -> m a) -> m (a, Array r ix e)
withMArrayST :: Array r ix e -> (forall s . MArray s r ix e -> ST s a) -> (a, Array r ix e)
Comp
from functions that ignore it:createArrayS_
,createArrayS
,createArrayST
,createArrayST_
unfoldrPrimM_
,iunfoldrPrimM_
,unfoldrPrimM
,iunfoldrPrimM
,unfoldlPrimM_
,unfoldlPrimM_
,unfoldlPrimM
,iunfoldlPrimM
(also for all above avoid filling new array, the all usenew
instead ofunsafeNew
)Data.Massiv.Array.Manifest.Vector.Stream
internal but exportable. Move toData.Massiv.Vector.Stream
castToBuilder
The text was updated successfully, but these errors were encountered: