summaryrefslogtreecommitdiff
path: root/compiler/GHC/Unit
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Unit')
-rw-r--r--compiler/GHC/Unit/Env.hs4
-rw-r--r--compiler/GHC/Unit/External.hs4
2 files changed, 8 insertions, 0 deletions
diff --git a/compiler/GHC/Unit/Env.hs b/compiler/GHC/Unit/Env.hs
index c3b7aaed4a..fe5a8e04e4 100644
--- a/compiler/GHC/Unit/Env.hs
+++ b/compiler/GHC/Unit/Env.hs
@@ -3,6 +3,7 @@
module GHC.Unit.Env
( UnitEnv (..)
, initUnitEnv
+ , ueEPS
, unsafeGetHomeUnit
, updateHug
, updateHpt
@@ -98,6 +99,9 @@ data UnitEnv = UnitEnv
-- ^ GHC name/version (used for dynamic library suffix)
}
+ueEPS :: UnitEnv -> IO ExternalPackageState
+ueEPS = eucEPS . ue_eps
+
initUnitEnv :: UnitId -> HomeUnitGraph -> GhcNameVersion -> Platform -> IO UnitEnv
initUnitEnv cur_unit hug namever platform = do
eps <- initExternalUnitCache
diff --git a/compiler/GHC/Unit/External.hs b/compiler/GHC/Unit/External.hs
index 4ed3479bf4..04af938c03 100644
--- a/compiler/GHC/Unit/External.hs
+++ b/compiler/GHC/Unit/External.hs
@@ -1,6 +1,7 @@
module GHC.Unit.External
( ExternalUnitCache (..)
, initExternalUnitCache
+ , eucEPS
, ExternalPackageState (..)
, initExternalPackageState
, EpsStats(..)
@@ -59,6 +60,9 @@ newtype ExternalUnitCache = ExternalUnitCache
initExternalUnitCache :: IO ExternalUnitCache
initExternalUnitCache = ExternalUnitCache <$> newIORef initExternalPackageState
+eucEPS :: ExternalUnitCache -> IO ExternalPackageState
+eucEPS = readIORef . euc_eps
+
initExternalPackageState :: ExternalPackageState
initExternalPackageState = EPS
{ eps_is_boot = emptyInstalledModuleEnv