From: simonmar Date: Fri, 4 May 2001 13:21:05 +0000 (+0000) Subject: [project @ 2001-05-04 13:21:05 by simonmar] X-Git-Tag: Approximately_9120_patches~1998 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=0d18f0278dd9bcdeb7ae0798ade2b67ee0f6fd2f;p=ghc-hetmet.git [project @ 2001-05-04 13:21:05 by simonmar] add flushPackageCache :: [PackageConfig] -> IO () for modifying the list of available packages. --- 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