packages feed

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 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)