|
1 | 1 | # Changelog for the Clash project |
2 | 2 |
|
| 3 | +## 1.8.3 *Oct 6th 2025* |
| 4 | + |
| 5 | +Added: |
| 6 | +* `Counter` instances for `Bool`, `Bit`, `Int`, `Int8`, `Int16`, `Int32`, `Int64`, `Word`, `Word8`, `Word16`, `Word32`, `Word64`, `Identity` and `Maybe`. [#2692](https://github.com/clash-lang/clash-compiler/pull/2692) |
| 7 | +* The Vec type now has a [COMPLETE pragma](https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/pragmas.html#complete-pragma) to avoid incomplete pattern matches when using the `(:>)` pattern. [#3020](https://github.com/clash-lang/clash-compiler/pull/3020) |
| 8 | +* RamOp now has an AutoReg instance. [#2792](https://github.com/clash-lang/clash-compiler/pull/2792) |
| 9 | +* Added instance `NFDataX (SimOnly a)` [#2900](https://github.com/clash-lang/clash-compiler/pull/2900) |
| 10 | +* Support for GHC 9.10 on Windows (macOS and Linux were already supported) [#2945](https://github.com/clash-lang/clash-compiler/pull/2945) |
| 11 | +* Added a `BitPack` instance for `Char` [#2957](https://github.com/clash-lang/clash-compiler/pull/2957) |
| 12 | +* Support for GHC 9.10.2 [#3003](https://github.com/clash-lang/clash-compiler/pull/3003) |
| 13 | + |
| 14 | +Changed: |
| 15 | +* Functions defined on `Clash.Class.Counter` are now public [#2692](https://github.com/clash-lang/clash-compiler/pull/2692) |
| 16 | + |
| 17 | +Fixed: |
| 18 | +* Clash hanging when rendering `Index n` literals, for large values of `n` [#2813](https://github.com/clash-lang/clash-compiler/issues/2813) |
| 19 | +* Render overflowed Index literals as don't-cares in HDL [#2970](https://github.com/clash-lang/clash-compiler/pull/2970) |
| 20 | +* Clash errors out when `Clash.Sized.Vector.splitAt` is compile-time evaluated in an illegal context [#2831]https://github.com/clash-lang/clash-compiler/issues/2831 |
| 21 | +* `Clash.Explicit.DDR`: [#2911](https://github.com/clash-lang/clash-compiler/pull/2911) |
| 22 | + - `ddrIn`: VHDL: Remove data input from sensitivity list of `ddrIn_neg_latch` register as it is superfluous. This should not affect functionality. |
| 23 | + - `ddrOut`: VHDL: Fix incorrect usage of `Enable` input when the domain is set to asynchronous resets. Deasserting the `Enable` exhibited wrong behavior before this fix. |
| 24 | +* `Clash.Xilinx.DDR`: [#2911](https://github.com/clash-lang/clash-compiler/pull/2911) |
| 25 | + - These primitives only support clocks where the rising edge is the active edge. Using them in a domain with falling active edges now causes an error. |
| 26 | + - `oddr`: Fix VHDL and SystemVerilog erroring out during HDL generation |
| 27 | + - Symbols in HDL for both `iddr` and `oddr` were renamed to match their function. |
| 28 | +* `Clash.Intel.DDR`: [#2911](https://github.com/clash-lang/clash-compiler/pull/2911) |
| 29 | + - These primitives only support clocks where the rising edge is the active edge. Using them in a domain with falling active edges now causes an error. |
| 30 | + - Fix rendering HDL. It variously errored out or generated non-working HDL. |
| 31 | + - Rendering HDL no longer causes Clash to issue a warning about an argument unused in Haskell but used in the primitive black box. |
| 32 | +* `makeTopEntity` now accounts for `SimOnly` constructs. This can prevent warnings in situtations where the `SimOnly` type would contain types `makeTopEntity` cannot handle. [#2897](https://github.com/clash-lang/clash-compiler/pull/2897) |
| 33 | +* Clash did not build on GHC 9.6.7 (but did on 9.6.6) [#2916](https://github.com/clash-lang/clash-compiler/issues/2916) |
| 34 | +* Ignore `Tick`s in `TermLiteral Integer`, `TermLiteral Char`, `TermLiteral Natural`, and `TermLiteral (SNat n)` [#2925](https://github.com/clash-lang/clash-compiler/pull/2925) |
| 35 | +* Fixed laziness issue in internal black box `imap_go` [#2542](https://github.com/clash-lang/clash-compiler/issues/2542) |
| 36 | +* Clash's evaluator now uses `TemplateHaskell` names to detect renamed symbols in `GHC.*` and `Clash.*`. Fixes errors similar to `No blackbox found for: GHC.Internal.Base.eqString` [#2972](https://github.com/clash-lang/clash-compiler/issues/2972) |
| 37 | +* No blackbox found for: `GHC.Internal.Control.Exception.Base.recSelError` on GHC 9.10 [#2966](https://github.com/clash-lang/clash-compiler/issues/2966) |
| 38 | +* Verilog and System Verilog code gen bug for `map head` [#2809](https://github.com/clash-lang/clash-compiler/issues/2809) |
| 39 | +* Error parsing blackbox: `Clash.Sized.Vector.head` [#2988](https://github.com/clash-lang/clash-compiler/issues/2988) |
| 40 | +* Clash no longer duplicates included datafiles when component is instantiated multiple times [#3008](https://github.com/clash-lang/clash-compiler/issues/3008) |
| 41 | +* Clash will no longer emit "no blackbox found for" `GHC.Real`'s exponentiation function if it is applied to constants [#3010](https://github.com/clash-lang/clash-compiler/pull/3010) |
| 42 | +* Clash will no longer error out when converting `ensureSpine` on Clash number types to HDL [#3021](https://github.com/clash-lang/clash-compiler/issues/3021) |
| 43 | +* Clash will no longer ignore Synthesize annotations when the function is used in an argument position [#3024](https://github.com/clash-lang/clash-compiler/issues/3024) |
| 44 | + |
3 | 45 | ## 1.8.2 *Jan 3rd 2025* |
4 | 46 |
|
5 | 47 | Added: |
|
0 commit comments