[project @ 2001-06-29 15:10:14 by simonmar]
authorsimonmar <unknown>
Fri, 29 Jun 2001 15:10:14 +0000 (15:10 +0000)
committersimonmar <unknown>
Fri, 29 Jun 2001 15:10:14 +0000 (15:10 +0000)
Change a '>' to '>=' when comparing the modification times of object &
source files, to match make's behaviour and eliminate some unnecessary
recompiles.

This introduces some potential unsafety, but it was felt that the
benefits in terms of unsurprising behaviour were worth it.

ghc/compiler/compMan/CompManager.lhs

index 24a53b8..cc7ca58 100644 (file)
@@ -640,7 +640,13 @@ getValidLinkable old_linkables objects_allowed new_linkables summary
            src_date = ms_hs_date summary
 
           valid_linkable
-             =  filter (\l -> linkableTime l > src_date) linkable
+             =  filter (\l -> linkableTime l >= src_date) linkable
+               -- why '>=' rather than '>' above?  If the filesystem stores
+               -- times to the nearset second, we may occasionally find that
+               -- the object & source have the same modification time, 
+               -- especially if the source was automatically generated
+               -- and compiled.  Using >= is slightly unsafe, but it matches
+               -- make's behaviour.
 
        return (valid_linkable ++ new_linkables)