Hassan Al-Awwadi pushed to branch wip/haanss/depdir at Glasgow Haskell Compiler / GHC
Commits:
-
e4016a66
by Hassan Al-Awwadi at 2025-07-05T13:25:30+02:00
2 changed files:
Changes:
... | ... | @@ -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.
|
... | ... | @@ -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,
|