From 0d18f0278dd9bcdeb7ae0798ade2b67ee0f6fd2f Mon Sep 17 00:00:00 2001 From: simonmar Date: Fri, 4 May 2001 13:21:05 +0000 Subject: [PATCH] [project @ 2001-05-04 13:21:05 by simonmar] add flushPackageCache :: [PackageConfig] -> IO () for modifying the list of available packages. --- ghc/compiler/main/Finder.lhs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/ghc/compiler/main/Finder.lhs b/ghc/compiler/main/Finder.lhs index f805654..176a244 100644 --- a/ghc/compiler/main/Finder.lhs +++ b/ghc/compiler/main/Finder.lhs @@ -9,7 +9,8 @@ module Finder ( findModule, -- :: ModuleName -> IO (Maybe (Module, ModuleLocation)) mkHomeModuleLocn, -- :: ModuleName -> String -> FilePath -- -> IO ModuleLocation - emptyHomeDirCache -- :: IO () + emptyHomeDirCache, -- :: IO () + flushPackageCache -- :: [PackageConfig] -> IO () ) where #include "HsVersions.h" @@ -26,7 +27,6 @@ import Panic ( panic ) import Config import IOExts -import Directory import List import IO import Monad @@ -51,15 +51,16 @@ GLOBAL_VAR(v_HomeDirCache, Nothing, Maybe (FiniteMap String FilePath)) initFinder :: [PackageConfig] -> IO () initFinder pkgs - = do { -- expunge our home cache - ; writeIORef v_HomeDirCache Nothing - -- lazilly fill in the package cache - ; writeIORef v_PkgDirCache (unsafePerformIO (newPkgCache pkgs)) - } + = do emptyHomeDirCache + flushPackageCache pkgs + +-- empty, and lazilly fill in the package cache +flushPackageCache :: [PackageConfig] -> IO () +flushPackageCache pkgs = writeIORef v_PkgDirCache + (unsafePerformIO (newPkgCache pkgs)) emptyHomeDirCache :: IO () -emptyHomeDirCache - = writeIORef v_HomeDirCache Nothing +emptyHomeDirCache = writeIORef v_HomeDirCache Nothing findModule :: ModuleName -> IO (Maybe (Module, ModuleLocation)) findModule name -- 1.7.10.4