Changelog for accelerate-1.3.0.0
Change Log
Notable changes to the project will be documented in this file.
The format is based on Keep a Changelog and the project adheres to the Haskell Package Versioning Policy (PVP)
1.3.0.0 - 2020-08-26
Added
- Instances of
Elt
are now derivable viaGeneric
for simple (Haskell'98) product and sum data types. - Pattern synonyms for manipulating custom product and sum types can now be
created; see
Pattern
,mkPattern
- Added pattern synonyms for accessing tuples and indices, as an alternative
to
lift
andunlift
. - Support for pattern matching in the embedded language; see
match
Changed
-
The
stencil
functions now support fusion. Note however that the source (delayed) array will be evaluated at every access to the stencil pattern; if the delayed function is expensive, you may wish to explicitlycompute
the source array first, matching the old behaviour. -
Removed
Slice
constraint from some indexing operations -
Improve fusion for
zipWith*
(#453) -
The indexing function to
permute
now returns aMaybe
type (#87) -
(internal) Visible type applications are used instead of
Proxy
types -
(internal)
EltR
is now a class-associated type ofElt
-
(internal)
GArrayData
has been simplified -
(internal) SIMD representation has been improved and generalised
-
Probably many others I have forgotten about
Removed
- Drop support for GHC-7.10 .. 8.4.
Contributors
Special thanks to those who contributed patches as part of this release:
- Trevor L. McDonell (@tmcdonell)
- Joshua Meredith (@JoshMeredith)
- Ivo Gabe de Wolff (@ivogabe)
- David van Balen (@dpvanbalen)
- Jaro Reinders (@noughtmare)
- Alex Lang (@alang9)
- Paul Wilson (@status_failed)
- @lennonhill
- Travis Whitaker (@TravisWhitaker)
- Roger Bosman (@rogerbosman)
- Robbert van der Helm (@robbert-vdh)
- Sam (@sam-340453)
- Lars van den Haak (@sakehl)
- Rinat Striungis (@Haskell-mouse)
- Viktor Kronvall (@considerate)
- Tom Smeding (@tomsmeding)
- Ryan Scott (@RyanGlScott)
1.2.0.1 - 2018-10-06
Fixed
- Build fix for ghc-8.6
1.2.0.0 - 2018-04-03
Changed
- Internal debugging/RTS options handling has been changed. Compiling this package now implies that backends are also compiled in debug mode (no need to set the
-fdebug
cabal flag for those packages as well). - Complex numbers are stored in the C-style array-of-struct representation.
- Improve numeric handling of complex numbers.
- Coercions (
bitcast
) now occur between the underlying representation types - Front-end performance improvements
Added
- Support for half-precision floating-point numbers.
- Support for struct-of-array-of-struct representations. Currently this is limited to fields of 2,3,4,8, or 16-elements wide.
- Add equivalents for
Data.Functor
,Data.Semigroup
(ghc-8+) - Add instances and helper functions for
Maybe
andEither
types - Add rank generalised versions of
take
,drop
,head
,tail
,init
,slit
,reverse
andtranspose
. - Implement counters and reporting for
-ddump-gc-stats
Contributors
Special thanks to those who contributed patches as part of this release:
- Trevor L. McDonell (@tmcdonell)
- Ryan Scott (@ryanglscott)
- Rinat Striungis (@Haskell-mouse)
1.1.1.0 - 2017-09-26
Changed
- Improve and colourise the pretty-printer
1.1.0.0 - 2017-09-21
Added
-
Additional EKG monitoring hooks (#340)
-
Operations from
RealFloat
Changed
- Changed type of
scanl'
,scanr'
to return anAcc
tuple, rather than a tuple ofAcc
arrays. - Specialised folds
sum
,product
,minimum
,maximum
,and
,or
,any
,all
now reduce along the innermost dimension only, rather than reducing all elements. You can recover the old behaviour by firstflatten
-ing the input array. - Add new stencil boundary condition
function
, to apply the given function to out-of-bounds indices.
Fixed
- #390: Wrong number of arguments in printf
1.0.0.0 - 2017-03-31
- Many API and internal changes
- Bug fixes and other enhancements
0.15.1.0
- Fix type of
allocateArray
0.15.0.0
- Bug fixes and performance improvements.
0.14.0.0
- New iteration constructs.
- Additional Prelude-like functions.
- Improved code generation and fusion optimisation.
- Concurrent kernel execution in the CUDA backend.
- Bug fixes.
0.13.0.0
- New array fusion optimisation.
- New foreign function interface for array and scalar expressions.
- Additional Prelude-like functions.
- New example programs.
- Bug fixes and performance improvements.
0.12.0.0
- Full sharing recovery in scalar expressions and array computations.
- Two new example applications in package
accelerate-examples
(both including a graphical frontend):- A real-time Canny edge detection
- An interactive fluid flow simulator
- Bug fixes.
0.11.0.0
- New Prelude-like functions
zip*
,unzip*
,fill
,enumFrom*
,tail
,init
,drop
,take
,slit
,gather*
,scatter*
, andshapeSize
. - New simplified AST (in package
accelerate-backend-kit
) for backend writers who want to avoid the complexities of the type-safe AST.
0.10.0.0
- Complete sharing recovery for scalar expressions (but currently disabled by default).
- Also bug fixes in array sharing recovery and a few new convenience functions.
0.9.0.0
- Streaming computations
- Precompilation
- Repa-style array indices
- Additional collective operations supported by the CUDA backend:
stencil
s, morescan
s, rank-polymorphicfold
,generate
. - Conversions to other array formats
- Bug fixes
0.8.1.0
- Bug fixes and some performance tweaks.
0.8.0.0
- More collective operations supported by the CUDA backend:
replicate
,slice
andfoldSeg
. Frontend and interpreter support forstencil
. - Bug fixes.
0.7.1.0
- Initial release of the CUDA backend