clash-ghc 0.6.9 → 0.6.10
raw patch · 5 files changed
+32/−5 lines, 5 filesdep ~clash-libdep ~clash-preludedep ~clash-vhdl
Dependency ranges changed: clash-lib, clash-prelude, clash-vhdl
Files
- CHANGELOG.md +11/−0
- clash-ghc.cabal +4/−4
- src-bin/InteractiveUI.hs +10/−1
- src-bin/Main.hs +1/−0
- src-ghc/CLaSH/GHC/CLaSHFlags.hs +6/−0
CHANGELOG.md view
@@ -1,5 +1,16 @@ # Changelog for the [`clash-ghc`](http://hackage.haskell.org/package/clash-ghc) package +## 0.6.10+* New features:+ * hdl files can be written to a directory (set by the `-clash-hdldir` flag) other than the current working directory [#125](https://github.com/clash-lang/clash-compiler/issues/125).+ Also respects the `-outputdir` directory, _unless_:+ * `-clash-hdldir` is set to a different directory.+ * `-hidir`, `-stubdir`, and `-dumbdir` are not the same directory as `-odir`+* Fixes bugs:+ * `caseCon` transformation does not work on non-exhaustive case-expressions [#123](https://github.com/clash-lang/clash-compiler/issues/123)+ * VHDL: insufficient type-qualifiers for concatenation operator [#121](https://github.com/clash-lang/clash-compiler/issues/121)+ * Primitive reductions don't look through `Signal` [#126](https://github.com/clash-lang/clash-compiler/issues/126)+ ## 0.6.9 *January 29th 2016* * New features: * Support for `Debug.Trace.trace`, thanks to @ggreif
clash-ghc.cabal view
@@ -1,5 +1,5 @@ Name: clash-ghc-Version: 0.6.9+Version: 0.6.10 Synopsis: CAES Language for Synchronous Hardware Description: CλaSH (pronounced ‘clash’) is a functional hardware description language that@@ -94,11 +94,11 @@ unbound-generics >= 0.1 && < 0.4, unordered-containers >= 0.2.1.0, - clash-lib >= 0.6.9 && < 0.7,+ clash-lib >= 0.6.10 && < 0.7, clash-systemverilog >= 0.6.5,- clash-vhdl >= 0.6.6,+ clash-vhdl >= 0.6.7, clash-verilog >= 0.6.5,- clash-prelude >= 0.10.5 && < 0.11,+ clash-prelude >= 0.10.6 && < 0.11, ghc-typelits-extra >= 0.1, ghc-typelits-natnormalise >= 0.3
src-bin/InteractiveUI.hs view
@@ -1578,12 +1578,21 @@ dflags <- GHC.getSessionDynFlags liftIO $ do opts <- readIORef optsRef let iw = opt_intWidth opts+ -- determine whether `-outputdir` was used+ outputDir = do odir <- objectDir dflags+ hidir <- hiDir dflags+ sdir <- stubDir dflags+ ddir <- dumpDir dflags+ if all (== odir) [hidir,sdir,ddir]+ then Just odir+ else Nothing+ opts' = opts {opt_hdlDir = maybe outputDir Just (opt_hdlDir opts)} primDir <- CLaSH.Backend.primDir (backend iw) primMap <- CLaSH.Primitives.Util.generatePrimMap [primDir,"."] forM_ srcs $ \src -> do (bindingsMap,tcm,tupTcm,topEnt,testInpM,expOutM) <- generateBindings primMap src (Just dflags) CLaSH.Driver.generateHDL bindingsMap (Just (backend iw)) primMap tcm- tupTcm (ghcTypeToHWType iw) reduceConstant topEnt testInpM expOutM opts+ tupTcm (ghcTypeToHWType iw) reduceConstant topEnt testInpM expOutM opts' makeVHDL :: IORef CLaSHOpts -> [FilePath] -> InputT GHCi () makeVHDL = makeHDL' (CLaSH.Backend.initBackend :: Int -> VHDLState)
src-bin/Main.hs view
@@ -124,6 +124,7 @@ , opt_inlineBelow = 15 , opt_cleanhdl = True , opt_intWidth = WORD_SIZE_IN_BITS+ , opt_hdlDir = Nothing }) (argv3, clashFlagWarnings) <- parseCLaSHFlags r argv2
src-ghc/CLaSH/GHC/CLaSHFlags.hs view
@@ -42,6 +42,7 @@ , defFlag "clash-debug" (SepArg (setDebugLevel r)) , defFlag "clash-noclean" (NoArg (liftEwM (setNoClean r))) , defFlag "clash-intwidth" (IntSuffix (setIntWidth r))+ , defFlag "clash-hdldir" (SepArg (setHdlDir r)) ] setInlineLimit :: IORef CLaSHOpts@@ -76,3 +77,8 @@ if n == 32 || n == 64 then liftEwM $ modifyIORef r (\c -> c {opt_intWidth = n}) else addWarn (show n ++ " is an invalid Int/Word/Integer bit-width. Allowed widths: 32, 64.")++setHdlDir :: IORef CLaSHOpts+ -> String+ -> EwM IO ()+setHdlDir r s = liftEwM $ modifyIORef r (\c -> c {opt_hdlDir = Just s})