packages feed

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