@@ -16,6 +16,7 @@ import Data.ByteString.Lazy as B hiding (length, elem)
1616import Control.Monad
1717import Control.Monad.State hiding (get, put)
1818import System.FilePath
19+import System.Directory
1920import System.Posix.Files
2021
2122import Paths_idris
@@ -53,7 +54,7 @@ writeIBC src f
5354 = do iLOG $ "Writing ibc " ++ show f
5455 i <- getIState
5556 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"
5758 [] -> return ()
5859 ibcf <- mkIBC (ibc_write i) (initIBC { sourcefile = src })
5960 lift $ encodeFile f ibcf
@@ -108,11 +109,13 @@ process i fn
108109 pDefs (ibc_defs i)
109110
110111timestampOlder :: FilePath -> FilePath -> IO ()
111−timestampOlder src ibc = do srcs <- getFileStatus src
112− ibcs <- getFileStatus ibc
113− if (modificationTime srcs > modificationTime ibcs)
114− then fail "Needs reloading"
115− else return ()
112+timestampOlder src ibc = do srcok <- doesFileExist src
113+ when srcok $ do
114+ srcs <- getFileStatus src
115+ ibcs <- getFileStatus ibc
116+ if (modificationTime srcs > modificationTime ibcs)
117+ then fail "Needs reloading"
118+ else return ()
116119
117120pImports :: [FilePath] -> Idris ()
118121pImports fs