Whitespace
[ghc-hetmet.git] / compiler / main / Main.hs
index 048eee8..964b488 100644 (file)
@@ -24,11 +24,11 @@ import HscMain          ( newHscEnv )
 import DriverPipeline  ( oneShot, compileFile )
 import DriverMkDepend  ( doMkDependHS )
 #ifdef GHCI
-import InteractiveUI   ( ghciWelcomeMsg, interactiveUI )
+import InteractiveUI   ( interactiveUI, ghciWelcomeMsg )
 #endif
 
 -- Various other random stuff that we need
-import Config          ( cProjectVersion, cBooterVersion, cProjectName )
+import Config
 import Packages                ( dumpPackages )
 import DriverPhases    ( Phase(..), isSourceFilename, anyHsc,
                          startPhase, isHaskellSrcFilename )
@@ -70,7 +70,7 @@ main =
   argv0 <- getArgs
 
   let
-        (minusB_args, argv1) = partition (prefixMatch "-B") argv0
+        (minusB_args, argv1) = partition ("-B" `isPrefixOf`) argv0
         mbMinusB | null minusB_args = Nothing
                  | otherwise = Just (drop 2 (last minusB_args))
 
@@ -126,7 +126,6 @@ main =
        -- make sure we clean up after ourselves
   GHC.defaultCleanupHandler dflags $ do
 
-       -- Display banner
   showBanner cli_mode dflags
 
   -- we've finished manipulating the DynFlags, update the session
@@ -223,11 +222,15 @@ checkOptions cli_mode dflags srcs objs = do
    let unknown_opts = [ f | (f@('-':_), _) <- srcs ]
    when (notNull unknown_opts) (unknownFlagsErr unknown_opts)
 
+   when (notNull (filter isRTSWay (wayNames dflags))
+         && isInterpretiveMode cli_mode) $
+        putStrLn ("Warning: -debug, -threaded and -ticky are ignored by GHCi")
+
        -- -prof and --interactive are not a good combination
-   when (notNull (filter (/= WayThreaded) (wayNames dflags))
+   when (notNull (filter (not . isRTSWay) (wayNames dflags))
          && isInterpretiveMode cli_mode) $
       do throwDyn (UsageError 
-                   "--interactive can't be used with -prof, -ticky, or -unreg.")
+                   "--interactive can't be used with -prof or -unreg.")
        -- -ohi sanity check
    if (isJust (outputHi dflags) && 
       (isCompManagerMode cli_mode || srcs `lengthExceeds` 1))
@@ -286,17 +289,17 @@ verifyOutputFiles dflags = do
 -- GHC modes of operation
 
 data CmdLineMode
-  = ShowUsage                  -- ghc -?
-  | PrintLibdir                        -- ghc --print-libdir
-  | ShowVersion                        -- ghc -V/--version
-  | ShowNumVersion             -- ghc --numeric-version
-  | ShowInterface String       -- ghc --show-iface
-  | DoMkDependHS               -- ghc -M
-  | StopBefore Phase           -- ghc -E | -C | -S
-                               -- StopBefore StopLn is the default
-  | DoMake                     -- ghc --make
-  | DoInteractive              -- ghc --interactive
-  | DoEval String              -- ghc -e
+  = ShowUsage               -- ghc -?
+  | PrintLibdir             -- ghc --print-libdir
+  | ShowVersion             -- ghc -V/--version
+  | ShowNumVersion          -- ghc --numeric-version
+  | ShowInterface String    -- ghc --show-iface
+  | DoMkDependHS            -- ghc -M
+  | StopBefore Phase        -- ghc -E | -C | -S
+                            -- StopBefore StopLn is the default
+  | DoMake                  -- ghc --make
+  | DoInteractive           -- ghc --interactive
+  | DoEval String           -- ghc -e
   deriving (Show)
 
 isInteractiveMode, isInterpretiveMode     :: CmdLineMode -> Bool
@@ -424,24 +427,21 @@ doShowIface dflags file = do
 showBanner :: CmdLineMode -> DynFlags -> IO ()
 showBanner cli_mode dflags = do
    let verb = verbosity dflags
-       -- Show the GHCi banner
-#  ifdef GHCI
-   when (isInteractiveMode cli_mode && verb >= 1) $
-      hPutStrLn stdout ghciWelcomeMsg
-#  endif
-
-       -- Display details of the configuration in verbose mode
-   when (not (isInteractiveMode cli_mode) && verb >= 2) $
-       do hPutStr stderr "Glasgow Haskell Compiler, Version "
-          hPutStr stderr cProjectVersion
-          hPutStr stderr ", for Haskell 98, compiled by GHC version "
+
 #ifdef GHCI
-          -- GHCI is only set when we are bootstrapping...
-          hPutStrLn stderr cProjectVersion
-#else
-          hPutStrLn stderr cBooterVersion
+   -- Show the GHCi banner
+   when (isInteractiveMode cli_mode && verb >= 1) $ putStrLn ghciWelcomeMsg
 #endif
 
+   -- Display details of the configuration in verbose mode
+   when (verb >= 2) $
+    do hPutStr stderr "Glasgow Haskell Compiler, Version "
+       hPutStr stderr cProjectVersion
+       hPutStr stderr ", for Haskell 98, stage "
+       hPutStr stderr cStage
+       hPutStr stderr " booted by GHC version "
+       hPutStrLn stderr cBooterVersion
+
 showVersion :: IO ()
 showVersion = do
   putStrLn (cProjectName ++ ", version " ++ cProjectVersion)
@@ -449,8 +449,8 @@ showVersion = do
 
 showGhcUsage dflags cli_mode = do 
   let usage_path 
-       | DoInteractive <- cli_mode = ghcUsagePath dflags
-       | otherwise                 = ghciUsagePath dflags
+       | DoInteractive <- cli_mode = ghciUsagePath dflags
+       | otherwise                 = ghcUsagePath dflags
   usage <- readFile usage_path
   dump usage
   exitWith ExitSuccess