clash-ghc 1.8.3 → 1.8.4
raw patch · 3 files changed
+18/−3 lines, 3 filesdep ~clash-libdep ~clash-preludedep ~ghc-typelits-extraPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: clash-lib, clash-prelude, ghc-typelits-extra, ghc-typelits-knownnat, ghc-typelits-natnormalise
API changes (from Hackage documentation)
Files
- CHANGELOG.md +12/−0
- clash-ghc.cabal +3/−3
- src-ghc/Clash/GHC/Evaluator/Primitive.hs +3/−0
CHANGELOG.md view
@@ -1,5 +1,17 @@ # Changelog for the Clash project +## 1.8.4 *Nov 6th 2025*++Changed:+* Nix flake updated to make it more suitable for use in downstream projects. [#2987](https://github.com/clash-lang/clash-compiler/pull/2987) [#3060](https://github.com/clash-lang/clash-compiler/pull/3060)++Fixed:+* `collapseRHSNoops` now runs after constant folding, making Clash able to constant fold more expressions than before. See [#3036](https://github.com/clash-lang/clash-compiler/issues/3036).+* The `unzip` family no longer retains a reference to the original input for every (unevaluated) part of the output tuple. Similarly, `mapAccumL` and `mapAccumR` are now also more eager to drop references. This can help to prevent space leaks. See [#3038](https://github.com/clash-lang/clash-compiler/issues/3038).+* Individual items of `iterateI` no longer retain a reference to the whole list, preventing space leaks. See [#3042](https://github.com/clash-lang/clash-compiler/issues/3042).+* The compiler now tracks assignment types in more places, which can prevent "clash error call" errors in some specific cases. See [#3045](https://github.com/clash-lang/clash-compiler/issues/3045).+* Test bench primitives now assign the string they want to pass to Verilog's `$display` to a variable before printing. This works around a limitation in IVerilog. See [#3046](https://github.com/clash-lang/clash-compiler/issues/3046).+ ## 1.8.3 *Oct 6th 2025* Added:
clash-ghc.cabal view
@@ -1,6 +1,6 @@ Cabal-version: 2.2 Name: clash-ghc-Version: 1.8.3+Version: 1.8.4 Synopsis: Clash: a functional hardware description language - GHC frontend Description: Clash is a functional hardware description language that borrows both its@@ -172,8 +172,8 @@ transformers >= 0.5.2.0 && < 0.7, unordered-containers >= 0.2.1.0 && < 0.3, - clash-lib == 1.8.3,- clash-prelude == 1.8.3,+ clash-lib == 1.8.4,+ clash-prelude == 1.8.4, ghc-typelits-extra >= 0.3.2 && < 0.5, ghc-typelits-knownnat >= 0.6 && < 0.8, ghc-typelits-natnormalise >= 0.6 && < 0.8,
src-ghc/Clash/GHC/Evaluator/Primitive.hs view
@@ -2167,6 +2167,9 @@ "GHC.Internal.Real.^_$s$spowImpl2" -- :: Int# -> Integer -> Integer | [intLiteral -> Just j, integerLiteral -> Just i] <- args -> reduce (integerToIntLiteral $ i ^ j)+ "GHC.Internal.Real.^_$s$spowImpl" -- :: Int -> Integer -> Integer+ | [intLiteral -> Just j, integerLiteral -> Just i] <- args+ -> reduce (integerToIntLiteral $ i ^ j) "GHC.Internal.Real.$w$spowImpl" -- :: Integer -> Int# -> Integer | [integerLiteral -> Just i, intLiteral -> Just j] <- args -> reduce (integerToIntLiteral $ i ^ j)