clash-ghc 1.2.2 → 1.2.3
raw patch · 4 files changed
+43/−6 lines, 4 filesdep +Cabaldep ~clash-libdep ~clash-preludePVP ok
version bump matches the API change (PVP)
Dependencies added: Cabal
Dependency ranges changed: clash-lib, clash-prelude
API changes (from Hackage documentation)
Files
- CHANGELOG.md +23/−1
- clash-ghc.cabal +4/−3
- src-bin-common/Clash/GHCi/Common.hs +2/−1
- src-ghc/Clash/GHC/LoadModules.hs +14/−1
CHANGELOG.md view
@@ -1,8 +1,30 @@ # Changelog for the Clash project -## 1.2.2 *June 12th 2020*+## 1.2.3 *July 11th 2020*+* Changed:+ * Upgrade to nixos 20.03. Nix and snap users will now use packages present in 20.03. +* Added:+ * `instance Monoid a => Monoid (Vec n a)`+ * `instance Text.Printf(Index)`+ * `instance Text.Printf(Signed)`+ * `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)+ * 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)+ * Clash no longer uses component names that clash with identifiers imported+ from:+ * IEEE.STD_LOGIC_1164.all+ * IEEE.NUMERIC_STD.all+ * IEEE.MATH_REAL.all+ * std.textio.all+ when generating VHDL.+ See https://github.com/clash-lang/clash-compiler/issues/1439.++## 1.2.2 *June 12th 2020* * Changed: * The hardwired functions to unroll primitive definitions for 'zipWith', 'map', 'foldr', and 'init' have been changed to only unroll a single step, whereas they would previously unroll the whole definition in one step. This allows Clash to take advantage of the lazy nature of these functions, in turn speeding up compilation speeds significantly in some cases. Part of [PR 1354](https://github.com/clash-lang/clash-compiler/pull/1354).
clash-ghc.cabal view
@@ -1,6 +1,6 @@ Cabal-version: 2.2 Name: clash-ghc-Version: 1.2.2+Version: 1.2.3 Synopsis: CAES Language for Synchronous Hardware Description: Clash is a functional hardware description language that borrows both its@@ -136,6 +136,7 @@ base >= 4.11 && < 5, bifunctors >= 4.1.1 && < 6.0, bytestring >= 0.9 && < 0.11,+ Cabal, containers >= 0.5.4.0 && < 0.7, directory >= 1.2 && < 1.4, filepath >= 1.3 && < 1.5,@@ -150,8 +151,8 @@ transformers >= 0.5.2.0 && < 0.6, unordered-containers >= 0.2.1.0 && < 0.3, - clash-lib == 1.2.2,- clash-prelude == 1.2.2,+ clash-lib == 1.2.3,+ clash-prelude == 1.2.3, concurrent-supply >= 0.1.7 && < 0.2, ghc-typelits-extra >= 0.3.3 && < 0.5, ghc-typelits-knownnat >= 0.7.2 && < 0.8,
src-bin-common/Clash/GHCi/Common.hs view
@@ -33,6 +33,7 @@ import Panic (GhcException (..), throwGhcException) import Control.Monad (forM_, unless, when)+import Distribution.System (OS(Windows), buildOS) import System.Directory (doesDirectoryExist) import System.IO (hPutStrLn, stderr) @@ -107,7 +108,7 @@ let isStatic = case lookup "GHC Dynamic" (DynFlags.compilerInfo dflags) of Just "YES" -> False _ -> True- when isStatic+ when (isStatic && buildOS /= Windows) (hPutStrLn stderr (unlines ["WARNING: Clash is linked statically, which can lead to long startup times." ,"See https://gitlab.haskell.org/ghc/ghc/issues/15524"
src-ghc/Clash/GHC/LoadModules.hs view
@@ -35,7 +35,7 @@ import Control.Arrow (first, second) import Control.DeepSeq (deepseq) import Control.Exception (SomeException, throw)-import Control.Monad (forM)+import Control.Monad (forM, when) #if MIN_VERSION_ghc(8,6,0) import Control.Exception (throwIO) #endif@@ -48,6 +48,7 @@ import Data.Maybe (catMaybes, listToMaybe, fromMaybe) import qualified Data.Text as Text import qualified Data.Time.Clock as Clock+import Debug.Trace import Language.Haskell.TH.Syntax (lift) import GHC.Stack (HasCallStack) @@ -212,6 +213,18 @@ _ -> False dflags3 = if ghcDynamic then DynFlags.gopt_set dflags2 DynFlags.Opt_BuildDynamicToo else dflags2++ when (DynFlags.gopt DynFlags.Opt_WorkerWrapper dflags3) $+ trace+ (unlines ["WARNING:"+ ,"`-fworker-wrapper` option is globally enabled, this can result in incorrect code."+ ,"Are you compiling with `-O` or `-O2`? Consider adding `-fno-worker-wrapper`."+ ,"`-fworker-wrapper` can be use in a diligent manner on a file-by-file basis"+ ,"by using a `{-# OPTIONS_GHC -fworker-wrapper` #-} pragma."+ ])+ (return ())++ #if MIN_VERSION_ghc(8,6,0) hscenv <- GHC.getSession dflags4 <- MonadUtils.liftIO (DynamicLoading.initializePlugins hscenv dflags3)