summaryrefslogtreecommitdiff
path: root/compiler/GHC/Unit/Module
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Unit/Module')
-rw-r--r--compiler/GHC/Unit/Module/Status.hs24
1 files changed, 13 insertions, 11 deletions
diff --git a/compiler/GHC/Unit/Module/Status.hs b/compiler/GHC/Unit/Module/Status.hs
index 52938154b4..e4273de94b 100644
--- a/compiler/GHC/Unit/Module/Status.hs
+++ b/compiler/GHC/Unit/Module/Status.hs
@@ -1,5 +1,5 @@
module GHC.Unit.Module.Status
- ( HscStatus (..)
+ ( HscBackendAction(..), HscRecompStatus (..)
)
where
@@ -8,20 +8,22 @@ import GHC.Prelude
import GHC.Unit
import GHC.Unit.Module.ModGuts
import GHC.Unit.Module.ModIface
-import GHC.Unit.Module.ModDetails
import GHC.Utils.Fingerprint
--- | Status of a module compilation to machine code
-data HscStatus
- -- | Nothing to do.
- = HscNotGeneratingCode ModIface ModDetails
+-- | Status of a module in incremental compilation
+data HscRecompStatus
-- | Nothing to do because code already exists.
- | HscUpToDate ModIface ModDetails
- -- | Update boot file result.
- | HscUpdateBoot ModIface ModDetails
- -- | Generate signature file (backpack)
- | HscUpdateSig ModIface ModDetails
+ = HscUpToDate ModIface
+ -- | Recompilation of module, or update of interface is required. Optionally
+ -- pass the old interface hash to avoid updating the existing interface when
+ -- it has not changed.
+ | HscRecompNeeded (Maybe Fingerprint)
+
+-- | Action to perform in backend compilation
+data HscBackendAction
+ -- | Update the boot and signature file results.
+ = HscUpdate ModIface
-- | Recompile this module.
| HscRecomp
{ hscs_guts :: CgGuts