@@ -16,6 +16,7 @@ import Data.ByteString.Lazy as B hiding (length, elem)
16import Control.Monad
16import Control.Monad
17import Control.Monad.State hiding (get, put)
17import Control.Monad.State hiding (get, put)
18import System.FilePath
18import System.FilePath
19+import System.Directory
19import System.Posix.Files
20import System.Posix.Files
21import Paths_idris
22import Paths_idris
@@ -53,7 +54,7 @@ writeIBC src f
53 = do iLOG $ "Writing ibc " ++ show f
54 = do iLOG $ "Writing ibc " ++ show f
54 i <- getIState
55 i <- getIState
55 case idris_metavars i \\ primDefs of
56 case idris_metavars i \\ primDefs of
56− (_:_) -> fail "Can't write ibc when there are unsolve metavariables"
57+ (_:_) -> fail "Can't write ibc when there are unsolved metavariables"
57 [] -> return ()
58 [] -> return ()
58 ibcf <- mkIBC (ibc_write i) (initIBC { sourcefile = src })
59 ibcf <- mkIBC (ibc_write i) (initIBC { sourcefile = src })
59 lift $ encodeFile f ibcf
60 lift $ encodeFile f ibcf
@@ -108,11 +109,13 @@ process i fn
108 pDefs (ibc_defs i)
109 pDefs (ibc_defs i)
110timestampOlder :: FilePath -> FilePath -> IO ()
111timestampOlder :: FilePath -> FilePath -> IO ()
112+timestampOlder src ibc = do srcok <- doesFileExist src
111−timestampOlder src ibc = do srcs <- getFileStatus src
114+ srcs <- getFileStatus src
112− ibcs <- getFileStatus ibc
115+ ibcs <- getFileStatus ibc
113− if (modificationTime srcs > modificationTime ibcs)
116+ if (modificationTime srcs > modificationTime ibcs)
114− then fail "Needs reloading"
117+ then fail "Needs reloading"
115− else return ()
118+ else return ()
117pImports :: [FilePath] -> Idris ()
120pImports :: [FilePath] -> Idris ()
118pImports fs
121pImports fs