<commit_before>homepage: http://www.clash-lang.org/
changelog-type: markdown
hash: 9b189f3dc5b6fa6998dcbeabd327c1c6ceed2907ad87407b47624132a06bd683
test-bench-deps:
  base: ! '>=4 && <5'
  doctest: ! '>=0.9.1 && <0.12'
maintainer: <NAME> <<EMAIL>>
synopsis: CAES Language for Synchronous Hardware - Prelude library
changelog: ! "# Changelog for [`clash-prelude` package](http://hackage.haskell.org/package/clash-prelude)\n\n##
  0.10.11 *August 3rd 2016*\n* New features:\n  * Add strict version of: `sample`,
  `sampleN`, `fromList`, and `simulate`\n  * Make `Signal`s `<*>` slightly stricter:\n
  \   * Feedback loops still work with this new implementation\n    * No more space-leaks
  when used in combination with the strict version of `sample`, `sampleN`, and `simulate`\n
  \ * Add `NFData` instances for the numeric types\n* Speed up arithmetic operations
  of `Signed`, `Unsigned` and `BitVector`\n* Fixes bugs:\n  * CLaSH compiler sees
  internals of numeric types in their `Lift` functions\n\n## 0.10.10 *July 15th 2016*\n*
  Fixes bugs:\n  * `shrink` functions for numeric types throw exceptions [#153](https://github.com/clash-lang/clash-compiler/issues/153)\n
  \ * CLaSH compiler sees internals of numeric types in their Show functions\n\n##
  0.10.9 *June 9th 2016*\n* Fixes bugs:\n  * `Eq` instance of `Vec` sometimes not
  synthesisable\n\n## 0.10.8 *June 7th 2016*\n* New features:\n  * Instances of `Data`
  for numeric types.\n  * Instances of `Read` for {Index, Signed, Unsigned, Fixed}\n
  \ * Instances of `BitPack` for 3-8 tuples\n\n## 0.10.7 *April 7th 2016*\n* Support
  doctest-0.11.0\n\n## 0.10.6 *February 10th 2016*\n* Fixes bugs:\n  * `CLaSH.Prelude.DataFlow.parNDF`
  is not lazy enough\n\n## 0.10.5 *January 13th 2016*\n* New features:\n  * Add `readNew`
  to `CLaSH.Prelude.BlockRam`: create a read-after-write blockRAM from a read-before-write
  blockRAM.\n  * `popCount` functions for `BitVector`, `Signed`, and `Unsigned` are
  now synthesisable.\n  * Add `parNDF` to `CLaSH.Prelude.DataFlow`: compose _N_ dataflow
  circuits in parallel.\n  * Add and instance `Vec n a` for `LockStep` in `CLaSH.Prelude.DataFlow`:
  have _N_ dataflow circuits operate in lock-step.\n\n## 0.10.4 *December 11th 2015*\n*
  New features:\n  * Add `pureDF` to `CLaSH.Prelude.DataFlow`: lift combinational
  circuits to `DataFlow` circuits.\n  * Add `fifoDF` to `CLaSH.Prelude.DataFlow`:
  a simple FIFO buffer adhering to the `DataFlow` protocol.\n  * `loopDF` no longer
  uses the `lockStep` and `stepLock` automatically, and now includes a FIFO buffer
  on the feedback path.\n  * Add `loopDF_nobuf` to `CLaSH.Prelude.DataFlow`: a version
  of `loopDF` with no FIFO buffer on the feedback path.\n  * Add `boolToBV` to `CLaSH.CLass.BitPack`:
  convert `Bool`eans to `n`-bit `BitVector`s.\n  * `ClockSource` in `CLaSH.Annotations.TopEntity`
  can now have multiple clock inputs [#33](https://github.com/clash-lang/clash-prelude/issues/33)\n*
  Bug fixes:\n  * `asyncRomFile` reads file multiple times.\n\n## 0.10.3 *October
  24th 2015*\n* Disable CPR analysis (See https://github.com/clash-lang/clash-compiler/commit/721fcfa9198925661cd836668705f817bddaae3c):\n
  \ * GHC < 7.11: In all modules using `-fcpr-off`\n  * GHC >= 7.11: In `CLaSH.Signal.Internal`
  and `CLaSH.Prelude.RAM` using `-fno-cpr-anal`\n\n## 0.10.2 *October 21st 2015*\n*
  New features:\n  * `ExtendingNum`, `BitPack`, and `Resize` instance for `Index`\n
  \ * Add `bv2i`: convert `BitVector n` to `Index (2^n)`\n  * Export type-level operations
  from [ghc-typelits-extra](http://hackage.haskell.org/package/ghc-typelits-extra)\n\n##
  0.10.1 *October 16th 2015*\n* New features:\n  * The `f` in `dfold p f`, now has
  an `SNat l` instead of a `Proxy l` as its first argument.\n  * Add `bv2v` and `v2bv`
  functions that convert between `Vec n Bit` and `BitVector n`.\n  * Add `smap`: apply
  a function to every element of a vector and the element's position (as an 'SNat'
  value) in the vector.\n\n## 0.10 *October 3rd 2015*\n* New features:\n  * The Vec
  constructor `:>` is now an explicitly bidirectional pattern synonym (the actual
  constructor has been renamed to Cons).\n    As a result, pattern matching on `:>`
  is now synthesisable by the CLaSH compiler.\n  * The function `<:` is replaced by
  the the explicitly bidirectional pattern synonym `:<`.\n    This allows you to pattern
  match on: \"all but the last element of a vector\" and \"the last element\" of the
  vector.\n    Because it is a bidirectional pattern, `:<` can also be used as an
  expression that appends an element to the tail of a vector.\n  * Add a `transpose`
  function in `CLaSH.Sized.Vector`.\n  * Add `stencil1d` and `stensil2d` stencil computation
  functions in `CLaSH.Sized.Vector`.\n  * Add `permute`, `backpermute`, `scatter`,
  and `gather` permutation functions in `CLaSH.Sized.Vector`.\n  * Add specialised
  permutation functions `interleave`, `rotateLeft`, and `rotateRight` in `CLaSH.Sized.Vector`.\n
  \ * `sscanl` and `sscanr` in `CLaSH.Sized.Vector` are renamed to `postscanl` and
  postscanr` to be more in line with existing Haskell packages such as `vector` and
  `accelerate`.\n  * The `Foldable` and `Traversable` instances of `Vec` now only
  works for non-empty vectors.\n  * Where possible, members of the `Foldable` instance
  of `Vec` are described in terms of `fold`, which builds a tree (of depth `log(n)`)
  of computations, instead of `foldr` which had depth `n` computations.\n    This
  reduces the critical path length in your circuits when using these functions.\n
  \ * `maxIndex` and `length` in `CLaSH.Sized.Vector` return an `Int` instead of an
  `Integer`.\n  * Add functions that involve an index into a vector to the `CLaSH.Sized.Vector`
  module: `indices`, `indicesI`, `imap`, `izipWith`, `ifoldr`, `ifoldl`, `findIndex`,
  `elemIndex`.\n  * `CLaSH.Sized.Vector`'s `fold`, `dfold`, `vfold`, and `toList`
  are now synthesisable by the CLaSH compiler.\n\n## 0.9.3 *September 21st 2015*\n*
  Fixes bugs:\n  * Cannot build against singletons-0.2\n  * Numerous documentation
  fixes\n\n## 0.9.2 *August 2nd 2015*\n* Disable strictness analysis in `CLaSH.Signal.Internal`,
  this allows turning on strictness analysis in the GHC front-end of the CLaSH compiler.\n\n##
  0.9.1 *June 26th 2015*\n* Updated documentation on data-file support on Altera/Quartus\n\n##
  0.9 *June 25th 2015*\n* New features:\n  * Add operations on singleton natural numbers:
  `addSNat`, `subSNat`, `mulSNat`, and `powSNat`.\n  * Add asynchronous RAM functions
  in `CLaSH.Prelude.RAM`, which have an asynchronous/combinational read port.\n  *
  Add ROM functions in modules `CLaSH.Prelude.ROM` and `CLaSH.Prelude.ROM.File`, where
  the latter module contains functions that instantiate a ROM from the content specified
  in an external data-file.\n  * Add BlockRam functions, in the `CLaSH.Prelude.BlockRam.File`
  module, whose content can be initialised with the content specified in an external
  data-file.\n  * `assert` now takes an extra `String` argument so you can distinguish
  one `assert` from the others.\n  Additionally, `assert'` is added which takes an
  additional `SClock` argument.\n  This is needed, because `assert` now reports the
  clock cycle, and clock domain, when an assertion fails.\n  * `defClkAltera` and
  `defClkXilinx` are replaced by, `altpll` and `alteraPll` for Altera clock sources,
  and `clockWizard` for Xilinx clock sources.\n  These names correspond to the names
  of the generator utilities in Quartus and ISE/Vivado.\n  * Add [Safe](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/safe-haskell.html)
  versions of the prelude modules: `CLaSH.Prelude.Safe` and `CLaSH.Prelude.Explicit.Safe`\n
  \ * Add synchronizers in the `CLaSH.Prelude.Synchronizer` module\n\n## 0.8 *June
  3rd 2015*\n* New features:\n  * Make the (Bit)Vector argument the _last_ argument
  for the following functions: `slice`, `setSlice`, `replaceBit`, `replace`. The signatures
  for the above functions are now:\n\n    ```\n    slice      :: BitPack a => SNat
  m -> SNat n -> a -> BitVector (m + 1 - n)\n    setSlice   :: BitPack a => SNat m
  -> SNat n -> BitVector (m + 1 - n) -> a -> a\n    replaceBit :: Integral i => i
  -> Bit -> a -> a\n    replace    :: Integral i => i -> a -> Vec n a -> Vec n a\n
  \   ```\n\n    This allows for easier chaining, e.g.:\n\n    ```\n    replaceBit
  0 1 $\n    repleceBit 4 0 $\n    replaceBit 6 1 bv\n    ```\n  * Until version 0.7.5,
  given `x :: Vec 8 Bit` and `y :: BitVector 8`, it used to be `last x == msb y`.\n
  \   This is quite confusing when printing converted values.\n    Until version 0.7.5
  we would get:\n\n    ```\n    > 0x0F :: BitVector 8\n    0000_1111\n    > unpack
  0x0F :: Vec 8 Bit\n    <1,1,1,1,0,0,0,0>\n    ```\n\n    As of version 0.8, we have
  `head x == msb y`:\n\n    ```\n    > 0x0F :: BitVector 8\n    0000_1111\n    > unpack
  0x0F :: Vec 8 Bit\n    <0,0,0,0,1,1,1,1>\n    ```\n\n    So converting for `Vec`tors
  of `Bit`s to `BitVector`s is no longer _index_-preserving, but it is _order_-preserving.\n
  \ * Add [QuickCheck](http://hackage.haskell.org/package/QuickCheck) `Arbitary` and
  `CoArbitary` instances for all data types\n  * Add [lens](http://hackage.haskell.org/package/lens)
  `Ixed` instances for `BitVector`, `Signed`, `Unsigned`, and `Vec`\n\n## 0.7.5 **May
  7th 2015**\n* New features:\n  * Moore machine combinators\n\n## 0.7.4 **May 5th
  2015*\n* New features:\n  * Add `TopEntity` annotations\n\n## 0.7.3 *April 22nd
  2015*\n* New features:\n  * Add the vector functions: `zip3`, `unzip3`, and `zipWith3`\n
  \ * Use version 0.2 of the [`ghc-typelits-natnormalise` package](http://hackage.haskell.org/package/ghc-typelits-natnormalise)\n\n##
  0.7.2 *April 20th 2015*\n* New features:\n  * Support for GHC 7.10 => only works
  with GHC 7.10 and higher\n  * Use http://hackage.haskell.org/package/ghc-typelits-natnormalise
  typechecker plugin for better type-level natural number handling\n\n## 0.7.1 *March
  25th 2015*\n* Fixes bugs:\n  * Fix laziness bug in Vector.(!!) and Vector.replace\n\n##
  0.7 *March 13th 2015*\n* New features:\n  * Switch types of `bundle` and `bundle'`,
  and `unbundle` and `unbundle'`.\n  * Rename all explicitly clocked versions of Signal
  functions, to the primed\n    name of the implicitly clocked Signal functions. E.g.
  `cregister` is now\n    called `register'` (where the implicitly clocked function
  is callled `register`)\n  * Add new instances for `DSignal`\n  * Add experimental
  `antiDelay` function for `DSignal`\n  * Generalize lifted functions over Signals
  (e.g. (.==.))\n\n* Fixes bugs:\n  * Faster versions of Vector.(!!) and Vector.replace\n\n##
  0.6.0.1 *November 17th 2014*\n* Fixes bugs:\n  * Add missing 'CLaSH.Sized.BitVector'
  module to .cabal file.\n\n## 0.6 *November 17th 2014*\n\n* New features:\n  * Add
  `Fractional` instance for `Fixed` [#9](https://github.com/christiaanb/clash-prelude/issues/9)\n
  \ * Make indexing/subscript of `Vec` ascending [#4](https://github.com/christiaanb/clash-prelude/issues/4)\n
  \ * Add separate `BitVector` type, which has a descending index.\n  * Add bit indexing
  operators, including the index/subscript operator `(!)`.\n  * Add bit reduction
  operators: `reduceOr`, `reduceAnd`, `reduceOr`.\n  * Rename `BitVector` class to
  `BitPack` with `pack` and `unpack` class methods.\n  * Rename `Pack` class to `Bundle`
  with `bundle` and `unbundle` class methods.\n  * Strip all `Vec` functions from
  their `v` prefix, i.e. `vmap` -> `map`.\n  * Rename `Vec` indexing operator from
  `(!)` to `(!!)`.\n  * Combine `Add` and `Mult` class into `ExtendingNum` class.\n
  \ * Add extend and truncate methods to the `Resize` class.\n  * Add `SaturatingNum`
  class with saturating numeric operators.\n  * Add multitude of lifted `Signal` operators,
  i.e. `(.==.) :: Eq a => Signal a -> Signal a -> Signal Bool`\n  * Add `CLaSH.Signal.Delayed`
  with functions and data types for delay-annotated signals to support safe synchronisation.\n
  \ * Add `CLASH.Prelude.DataFlow` with functions and data types to create self-synchronising
  circuits based on data-flow principles.\n\n* Fixes bugs:\n  * Remove deprecated
  'Arrow' instance for and related functions for `Comp` [#5](https://github.com/christiaanb/clash-prelude/issues/5)\n\n##
  0.5.1 *June 5th 2014*\n\n* New features:\n  * Add `Default` instance for `Vec` [#2](https://github.com/christiaanb/clash-prelude/issues/2)\n
  \ * Instantiation for `blockRam` [#3](https://github.com/christiaanb/clash-prelude/issues/2)\n\n*
  Fixes bugs:\n  * Fixed error on documentation of fLit in Fixed.hs [#6](https://github.com/christiaanb/clash-prelude/issues/6)\n
  \ * Non-translatable `Enum` function interfere with `sassert` compilation [#7](https://github.com/christiaanb/clash-prelude/issues/7)\n
  \ * Substituted the word 'list' into 'vector' in some places in the documentation.
  [#8](https://github.com/christiaanb/clash-prelude/issues/8)\n  * mark vselectI INLINEABLE
  [#10](https://github.com/christiaanb/clash-prelude/issues/10)\n\n## 0.5 *April 3rd
  2014*\n  * Add explicitly clocked synchronous signals for multi-clock circuits\n\n##
  0.4.1 *March 27th 2014*\n  * Add saturation to fixed-point operators\n  * Finalize
  most documentation\n\n## 0.4 *March 20th 2014*\n  * Add fixed-point integers\n  *
  Extend documentation\n  * 'bit' and 'testBit' functions give run-time errors on
  out-of-bound positions\n\n## 0.3 *March 14th 2014*\n  * Add Documentation\n  * Easy
  SNat literals for 0..1024, e.g. d4 = snat :: SNat 4\n  * Fix blockRamPow2\n\n##
  0.2 *March 5th 2014*\n  * Initial release\n"
basic-deps:
  reflection: ! '>=2 && <2.2'
  base: ! '>=4.8.0.0 && <5'
  data-default: ! '>=0.5.3 && <0.8'
  array: ! '>=0.5.1.0 && <0.6'
  integer-gmp: ! '>=0.5.1.0 && <1.1'
  ghc-typelits-natnormalise: ! '>=0.4.1 && <0.5'
  singletons: ! '>=1.0 && <3.0'
  ghc-typelits-extra: ! '>=0.1 && <0.2'
  lens: ! '>=4.9 && <4.15'
  ghc-prim: ! '>=0.3.1.0 && <0.6'
  deepseq: ! '>=1.4.1.0 && <1.5'
  QuickCheck: ! '>=2.7 && <2.10'
  th-lift: ! '>=0.5.6'
  template-haskell: ! '>=2.9.0.0 && <2.12'
all-versions:
- '0.2'
- '0.3'
- '0.4'
- '0.5'
- '0.5.0.1'
- '0.5.1'
- '0.6'
- '0.6.0.1'
- '0.7'
- '0.7.1'<commit_msg>Update from Hackage at 2016-08-18T08:31:01+0000<commit_after>homepage: http://www.clash-lang.org/
changelog-type: markdown
hash: 78036126962155a673bf48912e257774bfbd86fee69a0f2b07a7835696a4dd92
test-bench-deps:
  base: ! '>=4 && <5'
  doctest: ! '>=0.9.1 && <0.12'
maintainer: <NAME> <<EMAIL>>
synopsis: CAES Language for Synchronous Hardware - Prelude library
changelog: ! "# Changelog for [`clash-prelude` package](http://hackage.haskell.org/package/clash-prelude)\n\n##
  0.10.11 *August 3rd 2016*\n* New features:\n  * Add strict version of: `sample`,
  `sampleN`, `fromList`, and `simulate`\n  * Make `Signal`s `<*>` slightly stricter:\n
  \   * Feedback loops still work with this new implementation\n    * No more space-leaks
  when used in combination with the strict version of `sample`, `sampleN`, and `simulate`\n
  \ * Add `NFData` instances for the numeric types\n* Speed up arithmetic operations
  of `Signed`, `Unsigned` and `BitVector`\n* Fixes bugs:\n  * CLaSH compiler sees
  internals of numeric types in their `Lift` functions\n\n## 0.10.10 *July 15th 2016*\n*
  Fixes bugs:\n  * `shrink` functions for numeric types throw exceptions [#153](https://github.com/clash-lang/clash-compiler/issues/153)\n
  \ * CLaSH compiler sees internals of numeric types in their Show functions\n\n##
  0.10.9 *June 9th 2016*\n* Fixes bugs:\n  * `Eq` instance of `Vec` sometimes not
  synthesisable\n\n## 0.10.8 *June 7th 2016*\n* New features:\n  * Instances of `Data`
  for numeric types.\n  * Instances of `Read` for {Index, Signed, Unsigned, Fixed}\n
  \ * Instances of `BitPack` for 3-8 tuples\n\n## 0.10.7 *April 7th 2016*\n* Support
  doctest-0.11.0\n\n## 0.10.6 *February 10th 2016*\n* Fixes bugs:\n  * `CLaSH.Prelude.DataFlow.parNDF`
  is not lazy enough\n\n## 0.10.5 *January 13th 2016*\n* New features:\n  * Add `readNew`
  to `CLaSH.Prelude.BlockRam`: create a read-after-write blockRAM from a read-before-write
  blockRAM.\n  * `popCount` functions for `BitVector`, `Signed`, and `Unsigned` are
  now synthesisable.\n  * Add `parNDF` to `CLaSH.Prelude.DataFlow`: compose _N_ dataflow
  circuits in parallel.\n  * Add and instance `Vec n a` for `LockStep` in `CLaSH.Prelude.DataFlow`:
  have _N_ dataflow circuits operate in lock-step.\n\n## 0.10.4 *December 11th 2015*\n*
  New features:\n  * Add `pureDF` to `CLaSH.Prelude.DataFlow`: lift combinational
  circuits to `DataFlow` circuits.\n  * Add `fifoDF` to `CLaSH.Prelude.DataFlow`:
  a simple FIFO buffer adhering to the `DataFlow` protocol.\n  * `loopDF` no longer
  uses the `lockStep` and `stepLock` automatically, and now includes a FIFO buffer
  on the feedback path.\n  * Add `loopDF_nobuf` to `CLaSH.Prelude.DataFlow`: a version
  of `loopDF` with no FIFO buffer on the feedback path.\n  * Add `boolToBV` to `CLaSH.CLass.BitPack`:
  convert `Bool`eans to `n`-bit `BitVector`s.\n  * `ClockSource` in `CLaSH.Annotations.TopEntity`
  can now have multiple clock inputs [#33](https://github.com/clash-lang/clash-prelude/issues/33)\n*
  Bug fixes:\n  * `asyncRomFile` reads file multiple times.\n\n## 0.10.3 *October
  24th 2015*\n* Disable CPR analysis (See https://github.com/clash-lang/clash-compiler/commit/721fcfa9198925661cd836668705f817bddaae3c):\n
  \ * GHC < 7.11: In all modules using `-fcpr-off`\n  * GHC >= 7.11: In `CLaSH.Signal.Internal`
  and `CLaSH.Prelude.RAM` using `-fno-cpr-anal`\n\n## 0.10.2 *October 21st 2015*\n*
  New features:\n  * `ExtendingNum`, `BitPack`, and `Resize` instance for `Index`\n
  \ * Add `bv2i`: convert `BitVector n` to `Index (2^n)`\n  * Export type-level operations
  from [ghc-typelits-extra](http://hackage.haskell.org/package/ghc-typelits-extra)\n\n##
  0.10.1 *October 16th 2015*\n* New features:\n  * The `f` in `dfold p f`, now has
  an `SNat l` instead of a `Proxy l` as its first argument.\n  * Add `bv2v` and `v2bv`
  functions that convert between `Vec n Bit` and `BitVector n`.\n  * Add `smap`: apply
  a function to every element of a vector and the element's position (as an 'SNat'
  value) in the vector.\n\n## 0.10 *October 3rd 2015*\n* New features:\n  * The Vec
  constructor `:>` is now an explicitly bidirectional pattern synonym (the actual
  constructor has been renamed to Cons).\n    As a result, pattern matching on `:>`
  is now synthesisable by the CLaSH compiler.\n  * The function `<:` is replaced by
  the the explicitly bidirectional pattern synonym `:<`.\n    This allows you to pattern
  match on: \"all but the last element of a vector\" and \"the last element\" of the
  vector.\n    Because it is a bidirectional pattern, `:<` can also be used as an
  expression that appends an element to the tail of a vector.\n  * Add a `transpose`
  function in `CLaSH.Sized.Vector`.\n  * Add `stencil1d` and `stensil2d` stencil computation
  functions in `CLaSH.Sized.Vector`.\n  * Add `permute`, `backpermute`, `scatter`,
  and `gather` permutation functions in `CLaSH.Sized.Vector`.\n  * Add specialised
  permutation functions `interleave`, `rotateLeft`, and `rotateRight` in `CLaSH.Sized.Vector`.\n
  \ * `sscanl` and `sscanr` in `CLaSH.Sized.Vector` are renamed to `postscanl` and
  postscanr` to be more in line with existing Haskell packages such as `vector` and
  `accelerate`.\n  * The `Foldable` and `Traversable` instances of `Vec` now only
  works for non-empty vectors.\n  * Where possible, members of the `Foldable` instance
  of `Vec` are described in terms of `fold`, which builds a tree (of depth `log(n)`)
  of computations, instead of `foldr` which had depth `n` computations.\n    This
  reduces the critical path length in your circuits when using these functions.\n
  \ * `maxIndex` and `length` in `CLaSH.Sized.Vector` return an `Int` instead of an
  `Integer`.\n  * Add functions that involve an index into a vector to the `CLaSH.Sized.Vector`
  module: `indices`, `indicesI`, `imap`, `izipWith`, `ifoldr`, `ifoldl`, `findIndex`,
  `elemIndex`.\n  * `CLaSH.Sized.Vector`'s `fold`, `dfold`, `vfold`, and `toList`
  are now synthesisable by the CLaSH compiler.\n\n## 0.9.3 *September 21st 2015*\n*
  Fixes bugs:\n  * Cannot build against singletons-0.2\n  * Numerous documentation
  fixes\n\n## 0.9.2 *August 2nd 2015*\n* Disable strictness analysis in `CLaSH.Signal.Internal`,
  this allows turning on strictness analysis in the GHC front-end of the CLaSH compiler.\n\n##
  0.9.1 *June 26th 2015*\n* Updated documentation on data-file support on Altera/Quartus\n\n##
  0.9 *June 25th 2015*\n* New features:\n  * Add operations on singleton natural numbers:
  `addSNat`, `subSNat`, `mulSNat`, and `powSNat`.\n  * Add asynchronous RAM functions
  in `CLaSH.Prelude.RAM`, which have an asynchronous/combinational read port.\n  *
  Add ROM functions in modules `CLaSH.Prelude.ROM` and `CLaSH.Prelude.ROM.File`, where
  the latter module contains functions that instantiate a ROM from the content specified
  in an external data-file.\n  * Add BlockRam functions, in the `CLaSH.Prelude.BlockRam.File`
  module, whose content can be initialised with the content specified in an external
  data-file.\n  * `assert` now takes an extra `String` argument so you can distinguish
  one `assert` from the others.\n  Additionally, `assert'` is added which takes an
  additional `SClock` argument.\n  This is needed, because `assert` now reports the
  clock cycle, and clock domain, when an assertion fails.\n  * `defClkAltera` and
  `defClkXilinx` are replaced by, `altpll` and `alteraPll` for Altera clock sources,
  and `clockWizard` for Xilinx clock sources.\n  These names correspond to the names
  of the generator utilities in Quartus and ISE/Vivado.\n  * Add [Safe](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/safe-haskell.html)
  versions of the prelude modules: `CLaSH.Prelude.Safe` and `CLaSH.Prelude.Explicit.Safe`\n
  \ * Add synchronizers in the `CLaSH.Prelude.Synchronizer` module\n\n## 0.8 *June
  3rd 2015*\n* New features:\n  * Make the (Bit)Vector argument the _last_ argument
  for the following functions: `slice`, `setSlice`, `replaceBit`, `replace`. The signatures
  for the above functions are now:\n\n    ```\n    slice      :: BitPack a => SNat
  m -> SNat n -> a -> BitVector (m + 1 - n)\n    setSlice   :: BitPack a => SNat m
  -> SNat n -> BitVector (m + 1 - n) -> a -> a\n    replaceBit :: Integral i => i
  -> Bit -> a -> a\n    replace    :: Integral i => i -> a -> Vec n a -> Vec n a\n
  \   ```\n\n    This allows for easier chaining, e.g.:\n\n    ```\n    replaceBit
  0 1 $\n    repleceBit 4 0 $\n    replaceBit 6 1 bv\n    ```\n  * Until version 0.7.5,
  given `x :: Vec 8 Bit` and `y :: BitVector 8`, it used to be `last x == msb y`.\n
  \   This is quite confusing when printing converted values.\n    Until version 0.7.5
  we would get:\n\n    ```\n    > 0x0F :: BitVector 8\n    0000_1111\n    > unpack
  0x0F :: Vec 8 Bit\n    <1,1,1,1,0,0,0,0>\n    ```\n\n    As of version 0.8, we have
  `head x == msb y`:\n\n    ```\n    > 0x0F :: BitVector 8\n    0000_1111\n    > unpack
  0x0F :: Vec 8 Bit\n    <0,0,0,0,1,1,1,1>\n    ```\n\n    So converting for `Vec`tors
  of `Bit`s to `BitVector`s is no longer _index_-preserving, but it is _order_-preserving.\n
  \ * Add [QuickCheck](http://hackage.haskell.org/package/QuickCheck) `Arbitary` and
  `CoArbitary` instances for all data types\n  * Add [lens](http://hackage.haskell.org/package/lens)
  `Ixed` instances for `BitVector`, `Signed`, `Unsigned`, and `Vec`\n\n## 0.7.5 **May
  7th 2015**\n* New features:\n  * Moore machine combinators\n\n## 0.7.4 **May 5th
  2015*\n* New features:\n  * Add `TopEntity` annotations\n\n## 0.7.3 *April 22nd
  2015*\n* New features:\n  * Add the vector functions: `zip3`, `unzip3`, and `zipWith3`\n
  \ * Use version 0.2 of the [`ghc-typelits-natnormalise` package](http://hackage.haskell.org/package/ghc-typelits-natnormalise)\n\n##
  0.7.2 *April 20th 2015*\n* New features:\n  * Support for GHC 7.10 => only works
  with GHC 7.10 and higher\n  * Use http://hackage.haskell.org/package/ghc-typelits-natnormalise
  typechecker plugin for better type-level natural number handling\n\n## 0.7.1 *March
  25th 2015*\n* Fixes bugs:\n  * Fix laziness bug in Vector.(!!) and Vector.replace\n\n##
  0.7 *March 13th 2015*\n* New features:\n  * Switch types of `bundle` and `bundle'`,
  and `unbundle` and `unbundle'`.\n  * Rename all explicitly clocked versions of Signal
  functions, to the primed\n    name of the implicitly clocked Signal functions. E.g.
  `cregister` is now\n    called `register'` (where the implicitly clocked function
  is callled `register`)\n  * Add new instances for `DSignal`\n  * Add experimental
  `antiDelay` function for `DSignal`\n  * Generalize lifted functions over Signals
  (e.g. (.==.))\n\n* Fixes bugs:\n  * Faster versions of Vector.(!!) and Vector.replace\n\n##
  0.6.0.1 *November 17th 2014*\n* Fixes bugs:\n  * Add missing 'CLaSH.Sized.BitVector'
  module to .cabal file.\n\n## 0.6 *November 17th 2014*\n\n* New features:\n  * Add
  `Fractional` instance for `Fixed` [#9](https://github.com/christiaanb/clash-prelude/issues/9)\n
  \ * Make indexing/subscript of `Vec` ascending [#4](https://github.com/christiaanb/clash-prelude/issues/4)\n
  \ * Add separate `BitVector` type, which has a descending index.\n  * Add bit indexing
  operators, including the index/subscript operator `(!)`.\n  * Add bit reduction
  operators: `reduceOr`, `reduceAnd`, `reduceOr`.\n  * Rename `BitVector` class to
  `BitPack` with `pack` and `unpack` class methods.\n  * Rename `Pack` class to `Bundle`
  with `bundle` and `unbundle` class methods.\n  * Strip all `Vec` functions from
  their `v` prefix, i.e. `vmap` -> `map`.\n  * Rename `Vec` indexing operator from
  `(!)` to `(!!)`.\n  * Combine `Add` and `Mult` class into `ExtendingNum` class.\n
  \ * Add extend and truncate methods to the `Resize` class.\n  * Add `SaturatingNum`
  class with saturating numeric operators.\n  * Add multitude of lifted `Signal` operators,
  i.e. `(.==.) :: Eq a => Signal a -> Signal a -> Signal Bool`\n  * Add `CLaSH.Signal.Delayed`
  with functions and data types for delay-annotated signals to support safe synchronisation.\n
  \ * Add `CLASH.Prelude.DataFlow` with functions and data types to create self-synchronising
  circuits based on data-flow principles.\n\n* Fixes bugs:\n  * Remove deprecated
  'Arrow' instance for and related functions for `Comp` [#5](https://github.com/christiaanb/clash-prelude/issues/5)\n\n##
  0.5.1 *June 5th 2014*\n\n* New features:\n  * Add `Default` instance for `Vec` [#2](https://github.com/christiaanb/clash-prelude/issues/2)\n
  \ * Instantiation for `blockRam` [#3](https://github.com/christiaanb/clash-prelude/issues/2)\n\n*
  Fixes bugs:\n  * Fixed error on documentation of fLit in Fixed.hs [#6](https://github.com/christiaanb/clash-prelude/issues/6)\n
  \ * Non-translatable `Enum` function interfere with `sassert` compilation [#7](https://github.com/christiaanb/clash-prelude/issues/7)\n
  \ * Substituted the word 'list' into 'vector' in some places in the documentation.
  [#8](https://github.com/christiaanb/clash-prelude/issues/8)\n  * mark vselectI INLINEABLE
  [#10](https://github.com/christiaanb/clash-prelude/issues/10)\n\n## 0.5 *April 3rd
  2014*\n  * Add explicitly clocked synchronous signals for multi-clock circuits\n\n##
  0.4.1 *March 27th 2014*\n  * Add saturation to fixed-point operators\n  * Finalize
  most documentation\n\n## 0.4 *March 20th 2014*\n  * Add fixed-point integers\n  *
  Extend documentation\n  * 'bit' and 'testBit' functions give run-time errors on
  out-of-bound positions\n\n## 0.3 *March 14th 2014*\n  * Add Documentation\n  * Easy
  SNat literals for 0..1024, e.g. d4 = snat :: SNat 4\n  * Fix blockRamPow2\n\n##
  0.2 *March 5th 2014*\n  * Initial release\n"
basic-deps:
  reflection: ! '>=2 && <2.2'
  base: ! '>=4.8.0.0 && <5'
  data-default: ! '>=0.5.3 && <0.8'
  array: ! '>=0.5.1.0 && <0.6'
  integer-gmp: ! '>=0.5.1.0 && <1.1'
  ghc-typelits-natnormalise: ! '>=0.4.1 && <0.6'
  singletons: ! '>=1.0 && <3.0'
  ghc-typelits-extra: ! '>=0.1 && <0.2'
  lens: ! '>=4.9 && <4.15'
  ghc-prim: ! '>=0.3.1.0 && <0.6'
  deepseq: ! '>=1.4.1.0 && <1.5'
  QuickCheck: ! '>=2.7 && <2.10'
  th-lift: ! '>=0.5.6'
  template-haskell: ! '>=2.9.0.0 && <2.12'
all-versions:
- '0.2'
- '0.3'
- '0.4'
- '0.5'
- '0.5.0.1'
- '0.5.1'
- '0.6'
- '0.6.0.1'
- '0.7'
- '0.7.1'
{'fraction_non_alphanumeric': 0.14680019540791403, 'fraction_numerical': 0.04082629632214391, 'mean_word_length': 3.535369520493749, 'pattern_counts': {'":': 0, '<': 53, '<?xml version=': 0, '>': 105, 'https://': 26, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 18, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2737795', 'n_tokens_mistral': 11327, 'n_tokens_neox': 10352, 'n_words': 3227}