Changelog for clash-prelude-0.8.1
Changelog for clash-prelude package
0.8 June 3rd 2015
- New features:
-
Make the (Bit)Vector argument the last argument for the following functions:
slice,setSlice,replaceBit,replace. The signatures for the above functions are now:slice :: BitPack a => SNat m -> SNat n -> a -> BitVector (m + 1 - n) setSlice :: BitPack a => SNat m -> SNat n -> BitVector (m + 1 - n) -> a -> a replaceBit :: Integral i => i -> Bit -> a -> a replace :: Integral i => i -> a -> Vec n a -> Vec n aThis allows for easier chaining, e.g.:
replaceBit 0 1 $ repleceBit 4 0 $ replaceBit 6 1 bv -
Until version 0.7.5, given
x :: Vec 8 Bitandy :: BitVector 8, it used to belast x == msb y. This is quite confusing when printing converted values. Until version 0.7.5 we would get:> 0x0F :: BitVector 8 0000_1111 > unpack 0x0F :: Vec 8 Bit <1,1,1,1,0,0,0,0>As of version 0.8, we have
head x == msb y:> 0x0F :: BitVector 8 0000_1111 > unpack 0x0F :: Vec 8 Bit <0,0,0,0,1,1,1,1>So converting for
Vectors ofBits toBitVectors is no longer index-preserving, but it is order-preserving. -
Add QuickCheck
ArbitaryandCoArbitaryinstances for all data types -
Add lens
Ixedinstances forBitVector,Signed,Unsigned, andVec
-
0.7.5 May 7th 2015
- New features:
- Moore machine combinators
0.7.4 *May 5th 2015
- New features:
- Add
TopEntityannotations
- Add
0.7.3 April 22nd 2015
- New features:
- Add the vector functions:
zip3,unzip3, andzipWith3 - Use version 0.2 of the
ghc-typelits-natnormalisepackage
- Add the vector functions:
0.7.2 April 20th 2015
- New features:
- Support for GHC 7.10 => only works with GHC 7.10 and higher
- Use http://hackage.haskell.org/package/ghc-typelits-natnormalise typechecker plugin for better type-level natural number handling
0.7.1 March 25th 2015
- Fixes bugs:
- Fix laziness bug in Vector.(!!) and Vector.replace
0.7 March 13th 2015
-
New features:
- Switch types of
bundleandbundle', andunbundleandunbundle'. - Rename all explicitly clocked versions of Signal functions, to the primed
name of the implicitly clocked Signal functions. E.g.
cregisteris now calledregister'(where the implicitly clocked function is callledregister) - Add new instances for
DSignal - Add experimental
antiDelayfunction forDSignal - Generalize lifted functions over Signals (e.g. (.==.))
- Switch types of
-
Fixes bugs:
- Faster versions of Vector.(!!) and Vector.replace
0.6.0.1 November 17th 2014
- Fixes bugs:
- Add missing 'CLaSH.Sized.BitVector' module to .cabal file.
0.6 November 17th 2014
-
New features:
- Add
Fractionalinstance forFixed#9 - Make indexing/subscript of
Vecascending #4 - Add separate
BitVectortype, which has a descending index. - Add bit indexing operators, including the index/subscript operator
(!). - Add bit reduction operators:
reduceOr,reduceAnd,reduceOr. - Rename
BitVectorclass toBitPackwithpackandunpackclass methods. - Rename
Packclass toBundlewithbundleandunbundleclass methods. - Strip all
Vecfunctions from theirvprefix, i.e.vmap->map. - Rename
Vecindexing operator from(!)to(!!). - Combine
AddandMultclass intoExtendingNumclass. - Add extend and truncate methods to the
Resizeclass. - Add
SaturatingNumclass with saturating numeric operators. - Add multitude of lifted
Signaloperators, i.e.(.==.) :: Eq a => Signal a -> Signal a -> Signal Bool - Add
CLaSH.Signal.Delayedwith functions and data types for delay-annotated signals to support safe synchronisation. - Add
CLASH.Prelude.DataFlowwith functions and data types to create self-synchronising circuits based on data-flow principles.
- Add
-
Fixes bugs:
- Remove deprecated 'Arrow' instance for and related functions for
Comp#5
- Remove deprecated 'Arrow' instance for and related functions for
0.5.1 June 5th 2014
-
New features:
-
Fixes bugs:
0.5 April 3rd 2014
- Add explicitly clocked synchronous signals for multi-clock circuits
0.4.1 March 27th 2014
- Add saturation to fixed-point operators
- Finalize most documentation
0.4 March 20th 2014
- Add fixed-point integers
- Extend documentation
- 'bit' and 'testBit' functions give run-time errors on out-of-bound positions
0.3 March 14th 2014
- Add Documentation
- Easy SNat literals for 0..1024, e.g. d4 = snat :: SNat 4
- Fix blockRamPow2
0.2 March 5th 2014
- Initial release