packages feed

improve 0.3.0 → 0.3.1

raw patch · 3 files changed

+17/−4 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Language/ImProve.hs view
@@ -518,13 +518,13 @@  -- | Verify a program. ----- > verify pathToYices maxK program+-- > verify pathToYices program verify :: FilePath -> Stmt () -> IO () verify yices program = V.verify yices stmt   where   (_, _, stmt) = evalStmt 0 [] program --- | Generate C code.+-- | Generate C and Simulink code. code :: Name -> Stmt () -> IO () code name program = C.code name stmt   where
Language/ImProve/Code.hs view
@@ -136,7 +136,7 @@ -- Simulink generation. codeMdl :: Name -> Statement -> IO () codeMdl name stmt = do-  net <- execStateT all (Netlist 0 [] paths env [] [])+  net <- execStateT all (Netlist 0 [] paths env [] []) >>= return . removeNullEffect   writeFile (name ++ ".mdl") $ show $ mdl name $ (mdlBlocks $ blocks net) ++ (mdlLines $ nets net)   where   vars = stmtVars stmt@@ -420,4 +420,17 @@   Mux'           -> f "Switch"             ["Criteria" :- "u2 ~= 0"]   where   f typ args = mdlBlock typ name args++isSrc :: Block -> Bool+isSrc a = case a of+  Outport _ -> False+  Assertion -> False+  _         -> True++removeNullEffect :: Netlist -> Netlist+removeNullEffect net = if null unused then net else removeNullEffect net { blocks = blocks', nets = nets' }+  where+  unused = [ name | (name, block) <- blocks net, isSrc block, not $ any (\ (n, _) -> name == n) $ nets net ]+  blocks' = [ (name, block) | (name, block) <- blocks net, not $ elem name unused ]+  nets' = [ (src, (dest, port)) | (src, (dest, port)) <- nets net, not $ elem dest unused ] 
improve.cabal view
@@ -1,5 +1,5 @@ name:    improve-version: 0.3.0+version: 0.3.1  category: Language, Formal Methods, Embedded