clash-ghc 0.6.22 → 0.6.23
raw patch · 5 files changed
+23/−22 lines, 5 filesdep ~clash-libdep ~clash-preludedep ~clash-systemverilog
Dependency ranges changed: clash-lib, clash-prelude, clash-systemverilog, clash-verilog, ghc-typelits-natnormalise
Files
- CHANGELOG.md +5/−0
- clash-ghc.cabal +6/−6
- src-ghc/CLaSH/GHC/GHC2Core.hs +8/−3
- src-ghc/CLaSH/GHC/GenerateBindings.hs +2/−2
- src-ghc/CLaSH/GHC/NetlistTypes.hs +2/−11
CHANGELOG.md view
@@ -1,5 +1,10 @@ # Changelog for the [`clash-ghc`](http://hackage.haskell.org/package/clash-ghc) package +## 0.6.23 *August 18th 2015*+* Fixes bugs:+ * Type families are not being reduced correctly [#167](https://github.com/clash-lang/clash-compiler/issues/167)+ * (System)Verilog: Fix primitives for {Signed,Unsigned} rotateL# and rotateR# [#169](https://github.com/clash-lang/clash-compiler/issues/169)+ ## 0.6.22 *August 3rd 2016* * Fixes bugs: * Bug in DEC transformation overwrites case-alternatives
clash-ghc.cabal view
@@ -1,5 +1,5 @@ Name: clash-ghc-Version: 0.6.22+Version: 0.6.23 Synopsis: CAES Language for Synchronous Hardware Description: CλaSH (pronounced ‘clash’) is a functional hardware description language that@@ -94,13 +94,13 @@ unbound-generics >= 0.1 && < 0.4, unordered-containers >= 0.2.1.0 && < 0.3, - clash-lib >= 0.6.20 && < 0.7,- clash-systemverilog >= 0.6.8 && < 0.7,+ clash-lib >= 0.6.21 && < 0.7,+ clash-systemverilog >= 0.6.9 && < 0.7, clash-vhdl >= 0.6.16 && < 0.7,- clash-verilog >= 0.6.8 && < 0.7,- clash-prelude >= 0.10.11 && < 0.11,+ clash-verilog >= 0.6.9 && < 0.7,+ clash-prelude >= 0.10.13 && < 0.11, ghc-typelits-extra >= 0.1.3 && < 0.2,- ghc-typelits-natnormalise >= 0.4.3 && < 0.5,+ ghc-typelits-natnormalise >= 0.4.3 && < 0.6, deepseq >= 1.3.0.2 && < 1.5, time >= 1.4.0.1 && < 1.7
src-ghc/CLaSH/GHC/GHC2Core.hs view
@@ -46,6 +46,7 @@ import qualified Unbound.Generics.LocallyNameless as Unbound -- GHC API+import CoAxiom (CoAxiom (co_ax_branches), CoAxBranch (cab_lhs,cab_rhs), brListMapM) import Coercion (Coercion (..),Role(..),coercionType,coercionKind,mkCoercionType) import CoreFVs (exprSomeFreeVars) import CoreSyn (AltCon (..), Bind (..), CoreExpr,@@ -74,7 +75,7 @@ import TyCon (AlgTyConRhs (..), TyCon, algTyConRhs, isAlgTyCon, isFamilyTyCon, isFunTyCon, isNewTyCon,- isPrimTyCon, isTupleTyCon,+ isPrimTyCon, isTupleTyCon, isClosedSynFamilyTyCon_maybe, #if __GLASGOW_HASKELL__ >= 711 expandSynTyCon_maybe, #else@@ -161,8 +162,12 @@ mkFunTyCon = do tcName <- coreToName tyConName tyConUnique qualfiedNameString tc tcKind <- coreToType (tyConKind tc)- let instances = familyInstances fiEnvs tc- substs <- mapM famInstToSubst instances+ substs <- case isClosedSynFamilyTyCon_maybe tc of+ Nothing -> let instances = familyInstances fiEnvs tc+ in mapM famInstToSubst instances+ Just cx -> let bx = co_ax_branches cx+ in brListMapM (\b -> (,) <$> mapM coreToType (cab_lhs b)+ <*> coreToType (cab_rhs b)) bx return C.FunTyCon { C.tyConName = tcName
src-ghc/CLaSH/GHC/GenerateBindings.hs view
@@ -32,7 +32,7 @@ import CLaSH.Annotations.TopEntity (TopEntity) import CLaSH.Core.FreeVars (termFreeIds) import CLaSH.Core.Term (Term (..), TmName)-import CLaSH.Core.Type (Type, TypeView (..), coreView, mkFunTy, splitFunForallTy)+import CLaSH.Core.Type (Type, TypeView (..), mkFunTy, splitFunForallTy, tyView) import CLaSH.Core.TyCon (TyCon, TyConName) import CLaSH.Core.TysPrim (tysPrimMap) import CLaSH.Core.Subst (substTms)@@ -143,7 +143,7 @@ $ first (span (\l -> case l of Left _ -> True _ -> False)) $ splitFunForallTy ty- newExpr = case coreView tcm dictTy of+ newExpr = case tyView dictTy of (TyConApp _ _) -> runFreshM $ flip State.evalStateT (0 :: Int) $ do (dcId,dcVar) <- mkInternalVar "dict" dictTy selE <- mkSelectorCase "mkClassSelector" tcm dcVar 1 sel
src-ghc/CLaSH/GHC/NetlistTypes.hs view
@@ -20,8 +20,7 @@ import CLaSH.Core.DataCon (DataCon (..)) import CLaSH.Core.Pretty (showDoc) import CLaSH.Core.TyCon (TyCon (..), TyConName, tyConDataCons)-import CLaSH.Core.Type (Type (..), TypeView (..), findFunSubst,- tyView)+import CLaSH.Core.Type (Type (..), TypeView (..), tyView) import CLaSH.Core.Util (tyNatSize) import CLaSH.Netlist.Util (coreTypeToHWType) import CLaSH.Netlist.Types (HWType(..))@@ -110,14 +109,6 @@ (TyConApp (name2String -> "GHC.Types.Char") []) -> return String _ -> fail $ "Can't translate type: " ++ showDoc ty - _ -> case m ! tc of- -- TODO: Remove this conversion- -- The current problem is that type-functions are not reduced by the GHC -> Core- -- transformation process, and so end up here. Once a fix has been found for- -- this problem remove this dirty hack.- FunTyCon {tyConSubst = tcSubst} -> case findFunSubst tcSubst args of- Just ty' -> ExceptT $ return $ coreTypeToHWType go m ty'- _ -> ExceptT Nothing- _ -> ExceptT Nothing+ _ -> ExceptT Nothing go _ _ = Nothing