Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Summary of breaking changes for v0.5 #82

Closed
17 of 23 tasks
lehins opened this issue Aug 24, 2019 · 1 comment
Closed
17 of 23 tasks

Summary of breaking changes for v0.5 #82

lehins opened this issue Aug 24, 2019 · 1 comment

Comments

@lehins
Copy link
Owner

lehins commented Aug 24, 2019

New release is not too far along:

  • 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)
  • Remove 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 use new instead of unsafeNew)
  • make Data.Massiv.Array.Manifest.Vector.Stream internal but exportable. Move to Data.Massiv.Vector.Stream
  • Add castToBuilder
@lehins
Copy link
Owner Author

lehins commented Feb 16, 2020

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.

@lehins lehins closed this as completed Feb 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant