Hassan Al-Awwadi pushed to branch wip/haanss/depdir at Glasgow Haskell Compiler / GHC

Commits:

2 changed files:

Changes:

  • compiler/GHC/Unit/Finder.hs
    ... ... @@ -151,7 +151,7 @@ initFinderCache = do
    151 151
                  hash <- getDirHash key
    
    152 152
                  atomicModifyIORef' dir_cache $ \c -> (M.insert key hash c, ())
    
    153 153
                  return hash
    
    154
    -           Just fp -> return fp 
    
    154
    +           Just fp -> return fp
    
    155 155
       return FinderCache{..}
    
    156 156
     
    
    157 157
     -- | This function computes a shallow hash of a directory, so really just what files and directories are directly inside it.
    

  • compiler/GHC/Unit/Module/Deps.hs
    ... ... @@ -412,6 +412,7 @@ instance NFData Usage where
    412 412
       rnf (UsagePackageModule mod hash safe) = rnf mod `seq` rnf hash `seq` rnf safe `seq` ()
    
    413 413
       rnf (UsageHomeModule mod uid hash entities exports safe) = rnf mod `seq` rnf uid `seq` rnf hash `seq` rnf entities `seq` rnf exports `seq` rnf safe `seq` ()
    
    414 414
       rnf (UsageFile file hash label) = rnf file `seq` rnf hash `seq` rnf label `seq` ()
    
    415
    +  rnf (UsageDirectory dir hash label) = rnf dir `seq` rnf hash `seq` rnf label `seq` ()
    
    415 416
       rnf (UsageMergedRequirement mod hash) = rnf mod `seq` rnf hash `seq` ()
    
    416 417
       rnf (UsageHomeModuleInterface mod uid hash) = rnf mod `seq` rnf uid `seq` rnf hash `seq` ()
    
    417 418
     
    
    ... ... @@ -448,6 +449,12 @@ instance Binary Usage where
    448 449
             put_ bh (usg_unit_id  usg)
    
    449 450
             put_ bh (usg_iface_hash usg)
    
    450 451
     
    
    452
    +    put_ bh usg@UsageDirectory{} = do
    
    453
    +        putByte bh 5
    
    454
    +        put_ bh (usg_dir_path usg)
    
    455
    +        put_ bh (usg_dir_hash usg)
    
    456
    +        put_ bh (usg_dir_label usg)
    
    457
    +
    
    451 458
         get bh = do
    
    452 459
             h <- getByte bh
    
    453 460
             case h of
    
    ... ... @@ -479,6 +486,12 @@ instance Binary Usage where
    479 486
                 uid <- get bh
    
    480 487
                 hash <- get bh
    
    481 488
                 return UsageHomeModuleInterface { usg_mod_name = mod, usg_unit_id = uid, usg_iface_hash = hash }
    
    489
    +          5 -> do
    
    490
    +            dp    <- get bh
    
    491
    +            hash  <- get bh
    
    492
    +            label <- get bh
    
    493
    +            return UsageDirectory { usg_dir_path = fp, usg_dir_hash = hash, usg_dir_label = label }
    
    494
    +
    
    482 495
               i -> error ("Binary.get(Usage): " ++ show i)
    
    483 496
     
    
    484 497
     -- | Records the imports that we depend on from a home module,