summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-07-30 11:43:14 -0400
committerBen Gamari <ben@smart-cactus.org>2019-07-30 17:18:06 -0400
commit940bfea298fe52b479e8b022ee216f11a479369c (patch)
tree9dfa661951e8fd57cbcdea1e55c015bcef9af9ab
parentc1a06d49593d88c59c2a625154191890a05b90f9 (diff)
downloadhaskell-wip/pkgdb-timing.tar.gz
Packages: Add timing for package database initializationwip/pkgdb-timing
-rw-r--r--compiler/main/Packages.hs9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/main/Packages.hs b/compiler/main/Packages.hs
index 8c86f8df64..ccf42c588c 100644
--- a/compiler/main/Packages.hs
+++ b/compiler/main/Packages.hs
@@ -84,7 +84,8 @@ import CmdLineParser
import System.Environment ( getEnv )
import FastString
-import ErrUtils ( debugTraceMsg, MsgDoc, dumpIfSet_dyn, compilationProgressMsg )
+import ErrUtils ( debugTraceMsg, MsgDoc, dumpIfSet_dyn, compilationProgressMsg,
+ withTiming )
import Exception
import System.Directory
@@ -468,7 +469,9 @@ listPackageConfigMap dflags = eltsUDFM pkg_map
-- 'pkgState' in 'DynFlags' and return a list of packages to
-- link in.
initPackages :: DynFlags -> IO (DynFlags, [PreloadUnitId])
-initPackages dflags0 = do
+initPackages dflags0 = withTiming (return dflags0)
+ (text "initializing package database")
+ forcePkgDb $ do
dflags <- interpretPackageEnv dflags0
pkg_db <-
case pkgDatabase dflags of
@@ -481,6 +484,8 @@ initPackages dflags0 = do
pkgState = pkg_state,
thisUnitIdInsts_ = insts },
preload)
+ where
+ forcePkgDb (dflags, _) = pkgIdMap (pkgState dflags) `seq` ()
-- -----------------------------------------------------------------------------
-- Reading the package database(s)