clash-ghc 1.2.4 → 1.2.5
raw patch · 4 files changed
+24/−14 lines, 4 filesdep ~bytestringdep ~clash-libdep ~clash-preludePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bytestring, clash-lib, clash-prelude, time
API changes (from Hackage documentation)
Files
- CHANGELOG.md +15/−3
- clash-ghc.cabal +5/−5
- src-ghc/Clash/GHC/Evaluator.hs +3/−3
- src-ghc/Clash/GHC/GHC2Core.hs +1/−3
CHANGELOG.md view
@@ -1,5 +1,19 @@ # Changelog for the Clash project +## 1.2.5 *November 9th 2020*+Fixed:+ * The normalizeType function now fully normalizes types which require calls to+reduceTypeFamily [#1469](https://github.com/clash-lang/clash-compiler/issues/1469)+ * `flogBaseSNat`, `clogBaseSNat` and `logBaseSNat` primitives are now implemented correctly.Previously these primitives would be left unevaluated causing issues as demonstrated in [#1479](https://github.com/clash-lang/clash-compiler/issues/1469)+ * Specializing on functions with type family arguments no longer fails [#1477](https://github.com/clash-lang/clash-compiler/issues/1477)+ * `satSucc`, `satPred` correctly handle "small types" such as `Index 1`.+ * `msb` no longer fails on values larger than 64 bits+ * `undefined` can now be used as a reset value of `autoReg@Maybe` [#1507](https://github.com/clash-lang/clash-compiler/issues/1507)+ * Signal's `fmap` is now less strict, preventing infinite loops in very specific situations. See [#1521](https://github.com/clash-lang/clash-compiler/issues/1521)+ * Clash now uses correct function names in manifest and sdc files [#1533](https://github.com/clash-lang/clash-compiler/issues/1533)+ * Clash no longer produces erroneous HDL in very specific cases [#1536](https://github.com/clash-lang/clash-compiler/issues/1536)+ * Usage of `fold` inside other HO primitives (e.g., `map`) no longer fails [#1524](https://github.com/clash-lang/clash-compiler/issues/1524)+ ## 1.2.4 *July 28th 2020* * Changed: * Relaxed upper bound versions of `aeson` and `dlist`, in preparation for the new Stack LTS.@@ -16,7 +30,7 @@ * `instance Text.Printf(Unsigned)` * Fixed:- * Clash renders incorrect VHDL when GHCs Worker/Wrapper transformation is enabled [#1402](https://github.com/clash-lang/clash-compiler/issues/14020)+ * Clash renders incorrect VHDL when GHCs Worker/Wrapper transformation is enabled [#1402](https://github.com/clash-lang/clash-compiler/issues/1402) * Minor faults in generated HDL when using annotations from `Clash.Annotations.SynthesisAttributes` * Cabal installed through Snap (`clash.cabal`) can now access the internet to fetch pacakges. [#1411]https://github.com/clash-lang/clash-compiler/issues/1411 * Generated QSys file for `altpll` incompatible with Quartus CLI (did work in Quartus GUI)@@ -387,5 +401,3 @@ * https://github.com/clash-lang/clash-compiler/blob/3649a2962415ea8ca2d6f7f5e673b4c14de26b4f/clash-prelude/CHANGELOG.md * https://github.com/clash-lang/clash-compiler/blob/3649a2962415ea8ca2d6f7f5e673b4c14de26b4f/clash-lib/CHANGELOG.md * https://github.com/clash-lang/clash-compiler/blob/3649a2962415ea8ca2d6f7f5e673b4c14de26b4f/clash-ghc/CHANGELOG.md--
clash-ghc.cabal view
@@ -1,6 +1,6 @@ Cabal-version: 2.2 Name: clash-ghc-Version: 1.2.4+Version: 1.2.5 Synopsis: CAES Language for Synchronous Hardware Description: Clash is a functional hardware description language that borrows both its@@ -135,7 +135,7 @@ Build-Depends: array >= 0.4 && < 0.6, base >= 4.11 && < 5, bifunctors >= 4.1.1 && < 6.0,- bytestring >= 0.9 && < 0.11,+ bytestring >= 0.9 && < 0.12, Cabal, containers >= 0.5.4.0 && < 0.7, directory >= 1.2 && < 1.4,@@ -151,14 +151,14 @@ transformers >= 0.5.2.0 && < 0.6, unordered-containers >= 0.2.1.0 && < 0.3, - clash-lib == 1.2.4,- clash-prelude == 1.2.4,+ clash-lib == 1.2.5,+ clash-prelude == 1.2.5, concurrent-supply >= 0.1.7 && < 0.2, ghc-typelits-extra >= 0.3.3 && < 0.5, ghc-typelits-knownnat >= 0.7.2 && < 0.8, ghc-typelits-natnormalise >= 0.7.2 && < 0.8, deepseq >= 1.3.0.2 && < 1.5,- time >= 1.4.0.1 && < 1.11,+ time >= 1.4.0.1 && < 1.12, ghc-boot >= 8.4.0 && < 8.11, ghc-prim >= 0.3.1.0 && < 0.7, ghci >= 8.4.0 && < 8.11,
src-ghc/Clash/GHC/Evaluator.hs view
@@ -1431,7 +1431,7 @@ , Left (Literal (NaturalLiteral c))] "Clash.Promoted.Nat.flogBaseSNat"- | [_,_,Right a, Right b] <- map (runExcept . tyNatSize tcm) tys+ | [Right a, Right b] <- map (runExcept . tyNatSize tcm) tys , Just c <- flogBase a b , let c' = toInteger c -> let (_,tyView -> TyConApp snatTcNm _) = splitFunForallTy ty@@ -1442,7 +1442,7 @@ , Left (Literal (NaturalLiteral c'))] "Clash.Promoted.Nat.clogBaseSNat"- | [_,_,Right a, Right b] <- map (runExcept . tyNatSize tcm) tys+ | [Right a, Right b] <- map (runExcept . tyNatSize tcm) tys , Just c <- clogBase a b , let c' = toInteger c -> let (_,tyView -> TyConApp snatTcNm _) = splitFunForallTy ty@@ -1453,7 +1453,7 @@ , Left (Literal (NaturalLiteral c'))] "Clash.Promoted.Nat.logBaseSNat"- | [_,Right a, Right b] <- map (runExcept . tyNatSize tcm) tys+ | [Right a, Right b] <- map (runExcept . tyNatSize tcm) tys , Just c <- flogBase a b , let c' = toInteger c -> let (_,tyView -> TyConApp snatTcNm _) = splitFunForallTy ty
src-ghc/Clash/GHC/GHC2Core.hs view
@@ -41,7 +41,7 @@ #if !MIN_VERSION_base(4,11,0) import Data.Semigroup #endif-import Data.Text (Text, isInfixOf,pack)+import Data.Text (Text, pack) import qualified Data.Text as Text import Data.Text.Encoding (decodeUtf8) import qualified Data.Traversable as T@@ -502,8 +502,6 @@ return $ C.Prim (C.PrimInfo xNameS xType C.WorkVariable) Nothing | x `elem` unlocs- -> return (C.Prim (C.PrimInfo xNameS xType C.WorkVariable))- | pack "$cshow" `isInfixOf` xNameS -> return (C.Prim (C.PrimInfo xNameS xType C.WorkVariable)) | otherwise -> C.Var <$> coreToId x