on master help sign in
avoid reading time twice when cached file is changed
commitb3ea4a532203e1e9a416a425f95a113c0f476a42 authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 22 Jul 2019, 11:54 (7 years ago) parent7d2da8d
1 file changed+6−7
builder/src/Build.hs+6−7
builder/src/Build.hs+6−7
@@ -253,15 +253,15 @@ crawlModule env@(Env _ root pkg srcDirs locals foreigns) mvar docsNeed name =
253253 Nothing ->
254254 case Map.lookup name locals of
255255 Nothing ->
256− crawlFile env mvar docsNeed name path
256+ crawlFile env mvar docsNeed name path =<< File.getTime path
257257
258258 Just local@(Details.Local oldPath oldTime deps _) ->
259259 if path /= oldPath
260− then crawlFile env mvar docsNeed name path
260+ then crawlFile env mvar docsNeed name path =<< File.getTime path
261261 else
262262 do newTime <- File.getTime path
263263 if oldTime < newTime || needsDocs docsNeed
264− then crawlFile env mvar docsNeed name path
264+ then crawlFile env mvar docsNeed name path newTime
265265 else crawlDeps env mvar deps (SCached local)
266266
267267 p1:p2:ps ->
@@ -285,10 +285,9 @@ crawlModule env@(Env _ root pkg srcDirs locals foreigns) mvar docsNeed name =
285285 return $ SBadImport Import.NotFound
286286
287287
288−crawlFile :: Env -> MVar StatusDict -> DocsNeed -> ModuleName.Raw -> FilePath -> IO Status
289−crawlFile env@(Env _ root pkg _ _ _) mvar docsNeed expectedName path =
290− do time <- File.getTime path
291− source <- File.readUtf8 (root </> path)
288+crawlFile :: Env -> MVar StatusDict -> DocsNeed -> ModuleName.Raw -> FilePath -> File.Time -> IO Status
289+crawlFile env@(Env _ root pkg _ _ _) mvar docsNeed expectedName path time =
290+ do source <- File.readUtf8 (root </> path)
292291
293292 case Parse.fromByteString pkg source of
294293 Left err ->