packages feed

copilot-c99 0.2.2 → 0.2.3

raw patch · 2 files changed

+24/−11 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

copilot-c99.cabal view
@@ -1,6 +1,6 @@ cabal-version             : >= 1.10 name                      : copilot-c99-version                   : 0.2.2+version                   : 0.2.3 synopsis                  : A compiler for Copilot targeting C99. description               : This is a back-end from Copilot to the Atom DSL. Please see README.mk for more details. license                   : BSD3
src/Copilot/Compile/C99.hs view
@@ -22,13 +22,18 @@ import Language.Atom (Atom) import qualified Language.Atom as Atom -import Control.Monad (when)-import System.Directory (createDirectory, renameFile, removeFile)+import Data.Char (toUpper)+import Control.Monad (when, unless)+import System.Directory ( doesDirectoryExist+                        , createDirectory+                        , removeDirectoryRecursive+                        , renameFile+                        , removeFile)  --------------------------------------------------------------------------------  c99DirName :: String-c99DirName = "copilot-c99"+c99DirName = "copilot-c99-codegen"  c99FileRoot :: String c99FileRoot = "copilot"@@ -37,14 +42,22 @@  compile :: Params -> Core.Spec -> IO () compile params spec0 = do-  createDirectory dirName-  (schedule, _, _, _, _) <- Atom.compile programName atomDefaults atomProgram-  when (verbose params) $ putStrLn (Atom.reportSchedule schedule)-  genC99Header (prefix params) dirName spec-  mv ".c" -- the C file Atom generates-  removeFile (programName ++ ".h")  -- We don't want Atom's .h file, but our own-+  b <- doesDirectoryExist dirName+  when b $ do putStrLn "Directory exists.  Delete? [y/N]:"+              input <- getLine+              if (map toUpper input == "Y") +                then (removeDirectoryRecursive dirName) >> build+                else putStrLn "Ok, nothing done.  Terminating."+  unless b build    where+  build = do +    createDirectory dirName+    (schedule, _, _, _, _) <- Atom.compile programName atomDefaults atomProgram+    when (verbose params) $ putStrLn (Atom.reportSchedule schedule)+    genC99Header (prefix params) dirName spec+    mv ".c" -- the C file Atom generates+    removeFile (programName ++ ".h")  -- We don't want Atom's .h file, but our own+   mv ext = renameFile p (dirName ++ "/" ++ p)     where p = programName ++ ext