on master help sign in
Merge pull request #2933 from LeifW/util_cleanup

Util cleanup

commit00ab489218dbde7818fac2cda43395fc430204d6 authorNiklas Larsson <metaniklas@gmail.com> dateSun 31 Jan 2016, 23:40 (11 years ago) parentc2d79d76859fe7
3 files changed+9−39
src/IRTS/CodegenCommon.hs−10 src/IRTS/System.hs+9−25 src/Util/System.hs−4
src/IRTS/CodegenCommon.hs−10
@@ -3,20 +3,10 @@ module IRTS.CodegenCommon where
33import Idris.Core.TT
44import IRTS.Simplified
55import IRTS.Defunctionalise
6−import IRTS.Lang
7−
8−import Control.Exception
9−import Data.Word
10−import System.Environment
116
127data DbgLevel = NONE | DEBUG | TRACE deriving Eq
138data OutputType = Raw | Object | Executable | MavenProject deriving (Eq, Show)
149
15−environment :: String -> IO (Maybe String)
16−environment x = Control.Exception.catch (do e <- getEnv x
17− return (Just e))
18− (\y-> do return (y::SomeException); return Nothing)
19−
2010-- Everything which might be needed in a code generator - a CG can choose which
2111-- level of Decls to generate code from (simplified, defunctionalised or merely
2212-- lambda lifted) and has access to the list of object files, libraries, etc.
src/IRTS/System.hs+9−25
@@ -1,8 +1,7 @@
11{-# LANGUAGE CPP #-}
22module IRTS.System(getDataFileName, getDataDir, getTargetDir,getCC,getLibFlags,getIdrisLibDir,
3− getIncFlags, getEnvFlags, getMvn,getExecutablePom, version) where
3+ getIncFlags, getEnvFlags, version) where
44
5−import Util.System
65import Data.List.Split
76
87import Control.Applicative ((<$>))
@@ -17,28 +16,18 @@ import Paths_idris (version)
1716import Paths_idris
1817#endif
1918
19+overrideDataDirWith :: String -> IO FilePath
20+overrideDataDirWith envVar = do envValue <- lookupEnv envVar
21+ maybe getDataDir return envValue
22+
2023getCC :: IO String
21−getCC = fromMaybe "gcc" <$> environment "IDRIS_CC"
24+getCC = fromMaybe "gcc" <$> lookupEnv "IDRIS_CC"
2225
2326getEnvFlags :: IO [String]
24−getEnvFlags = maybe [] (splitOn " ") <$> environment "IDRIS_CFLAGS"
25−
26−mvnCommand :: String
27−#ifdef mingw32_HOST_OS
28−mvnCommand = "mvn.bat"
29−#else
30−mvnCommand = "mvn"
31−#endif
32−
33−getMvn :: IO String
34−getMvn = fromMaybe mvnCommand <$> environment "IDRIS_MVN"
35−
36−environment :: String -> IO (Maybe String)
37−environment x = catchIO (Just <$> getEnv x)
38− (\_ -> return Nothing)
27+getEnvFlags = maybe [] (splitOn " ") <$> lookupEnv "IDRIS_CFLAGS"
3928
4029getTargetDir :: IO String
41−getTargetDir = environment "TARGET" >>= maybe getDataDir return
30+getTargetDir = overrideDataDirWith "TARGET"
4231
4332#if defined(FREEBSD) || defined(DRAGONFLY)
4433extraLib = ["-L/usr/local/lib"]
@@ -56,9 +45,7 @@ getLibFlags = do dir <- getDataDir
5645 return $ ["-L" ++ (dir </> "rts"),
5746 "-lidris_rts"] ++ extraLib ++ gmpLib ++ ["-lpthread"]
5847
59−getIdrisLibDir = do libPath <- environment "IDRIS_LIBRARY_PATH"
60− dir <- maybe getDataDir return libPath
61− return $ addTrailingPathSeparator dir
48+getIdrisLibDir = addTrailingPathSeparator <$> overrideDataDirWith "IDRIS_LIBRARY_PATH"
6249
6350#if defined(FREEBSD) || defined(DRAGONFLY)
6451extraInclude = ["-I/usr/local/include"]
@@ -67,6 +54,3 @@ extraInclude = []
6754#endif
6855getIncFlags = do dir <- getDataDir
6956 return $ ("-I" ++ dir </> "rts") : extraInclude
70−
71−getExecutablePom = do dir <- getDataDir
72− return $ dir </> "java" </> "executable_pom.xml"
src/Util/System.hs−4
@@ -2,7 +2,6 @@
22module Util.System(tempfile,withTempdir,rmFile,catchIO, isWindows,
33 writeSource, writeSourceText, readSource,
44 setupBundledCC, isATTY) where
5−
65-- System helper functions.
76
87import Control.Exception as CE
@@ -32,9 +31,6 @@ import System.Environment (getEnv, setEnv, getExecutablePath)
3231catchIO :: IO a -> (IOError -> IO a) -> IO a
3332catchIO = CE.catch
3433
35−throwIO :: IOError -> IO a
36−throwIO = CE.throw
37−
3834isWindows :: Bool
3935isWindows = os `elem` ["win32", "mingw32", "cygwin32"]
4036