@@ -15,6 +15,7 @@ import Data.Map (Map)
15import qualified Data.Map as Map
15import qualified Data.Map as Map
16import qualified Data.Maybe as Maybe
16import qualified Data.Maybe as Maybe
17import qualified Data.Text.Encoding as Text
17import qualified Data.Text.Encoding as Text
18+import qualified System.Directory as Dir
19import qualified Elm.Compiler as Compiler
20import qualified Elm.Compiler as Compiler
20import qualified Elm.Compiler.Module as Module
21import qualified Elm.Compiler.Module as Module
@@ -48,11 +49,13 @@ ignore answers =
48write :: FilePath -> Map Module.Raw Answer -> Task.Task (Map Module.Raw Compiler.Artifacts)
49write :: FilePath -> Map Module.Raw Answer -> Task.Task (Map Module.Raw Compiler.Artifacts)
49write root answers =
50write root answers =
51− writer name result@(Compiler.Artifacts elmi elmo _) =
52+ writer name result@(Compiler.Artifacts time elmi elmo _) =
52 do mvar <- newEmptyMVar
53 do mvar <- newEmptyMVar
53 void $ forkIO $
54 void $ forkIO $
54− do Binary.encodeFile (Path.elmi root name) elmi
55+ do let ifacePath = Path.elmi root name
56+ Binary.encodeFile ifacePath elmi
55 Binary.encodeFile (Path.elmo root name) elmo
57 Binary.encodeFile (Path.elmo root name) elmo
58+ Dir.setModificationTime ifacePath time
56 putMVar mvar result
59 putMVar mvar result
57 return mvar
60 return mvar
@@ -63,7 +66,7 @@ write root answers =
63writeDocs :: Map Module.Raw Compiler.Artifacts -> FilePath -> Task.Task Docs.Documentation
66writeDocs :: Map Module.Raw Compiler.Artifacts -> FilePath -> Task.Task Docs.Documentation
64writeDocs results path =
67writeDocs results path =
66− getDocs (Compiler.Artifacts _ _ docs) =
69+ getDocs (Compiler.Artifacts _ _ _ docs) =
69 case Maybe.mapMaybe getDocs (Map.elems results) of
72 case Maybe.mapMaybe getDocs (Map.elems results) of