X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FMain.hs;h=5786dec2885e1178e3ba4138a7be7a2f403f4365;hb=4d1b970fe7ae5e25a54a7bce03c2501f07f27211;hp=8655f0a1baac05c50d214ecb568cb85770e586d0;hpb=5b71ceede306f084aafbed3046a3b662356d8cb5;p=ghc-hetmet.git diff --git a/ghc/compiler/main/Main.hs b/ghc/compiler/main/Main.hs index 8655f0a..5786dec 100644 --- a/ghc/compiler/main/Main.hs +++ b/ghc/compiler/main/Main.hs @@ -1,6 +1,6 @@ -{-# OPTIONS -W -fno-warn-incomplete-patterns #-} +{-# OPTIONS -fno-warn-incomplete-patterns #-} ----------------------------------------------------------------------------- --- $Id: Main.hs,v 1.30 2000/11/21 16:18:17 sewardj Exp $ +-- $Id: Main.hs,v 1.36 2000/12/11 16:42:26 sewardj Exp $ -- -- GHC Driver program -- @@ -15,11 +15,18 @@ module Main (main) where #include "HsVersions.h" -import CompManager -import Interpreter + #ifdef GHCI +import Interpreter import InteractiveUI #endif + +#ifndef mingw32_TARGET_OS +import Dynamic +import Posix +#endif + +import CompManager import DriverPipeline import DriverState import DriverFlags @@ -28,21 +35,18 @@ import DriverUtil import Panic import DriverPhases ( Phase(..) ) import CmdLineOpts ( HscLang(..), DynFlags(..), v_Static_hsc_opts ) -import Module ( mkModuleName ) import TmpFiles import Finder ( initFinder ) import CmStaticInfo import Config import Util + + import Concurrent -#ifndef mingw32_TARGET_OS -import Posix -#endif import Directory import IOExts import Exception -import Dynamic import IO import Monad @@ -244,8 +248,8 @@ main = when (mode == DoMkDependHS) beginMkDependHS -- make/interactive require invoking the compilation manager - if (mode == DoMake) then beginMake pkg_avails srcs else do - if (mode == DoInteractive) then beginInteractive pkg_avails srcs else do + if (mode == DoMake) then beginMake srcs else do + if (mode == DoInteractive) then beginInteractive srcs else do -- for each source file, find which phases to run let lang = hscLang init_dyn_flags @@ -282,24 +286,26 @@ setTopDir args = do some -> writeIORef v_TopDir (drop 2 (last some))) return others -beginMake :: PackageConfigInfo -> [String] -> IO () -beginMake pkg_details mods +beginMake :: [String] -> IO () +beginMake mods = do case mods of [] -> throwDyn (UsageError "no input files") - [mod] -> do state <- cmInit pkg_details Batch + [mod] -> do state <- cmInit Batch cmLoadModule state mod return () _ -> throwDyn (UsageError "only one module allowed with --make") + +beginInteractive :: [String] -> IO () #ifndef GHCI beginInteractive = throwDyn (OtherError "not build for interactive use") #else -beginInteractive pkg_details mods - = do state <- cmInit pkg_details Interactive - case mods of - [] -> return () - [mod] -> do cmLoadModule state mod; return () - _ -> throwDyn (UsageError - "only one module allowed with --interactive") - interactiveUI state +beginInteractive mods + = do state <- cmInit Interactive + let mod = case mods of + [] -> Nothing + [mod] -> Just mod + _ -> throwDyn (UsageError + "only one module allowed with --interactive") + interactiveUI state mod #endif