From b0cf51f6c34ad464e51ba20e07d22df379298468 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 19 Jan 2007 15:52:31 +0000 Subject: [PATCH] Don't start a GHC session before answering --version/--numeric-version This also fixes bootstrapping issues, as when bootstrapping we don't have a package.conf when we run configure, so it fails to work out what version of GHC it is which causes breakage later on. --- compiler/main/Main.hs | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/compiler/main/Main.hs b/compiler/main/Main.hs index 09d8185..758451f 100644 --- a/compiler/main/Main.hs +++ b/compiler/main/Main.hs @@ -78,6 +78,18 @@ main = -- 2. Parse the "mode" flags (--make, --interactive etc.) (cli_mode, argv3) <- parseModeFlags argv2 + -- If all we want to do is to show the version number then do it + -- now, before we start a GHC session etc. + -- If we do it later then bootstrapping gets confused as it tries + -- to find out what version of GHC it's using before package.conf + -- exists, so starting the session fails. + case cli_mode of + ShowVersion -> do showVersion + exitWith ExitSuccess + ShowNumVersion -> do putStrLn cProjectVersion + exitWith ExitSuccess + _ -> return () + let mode = case cli_mode of DoInteractive -> Interactive DoEval _ -> Interactive @@ -145,16 +157,16 @@ main = ---------------- Do the business ----------- case cli_mode of - ShowUsage -> showGhcUsage dflags cli_mode - PrintLibdir -> putStrLn (topDir dflags) - ShowVersion -> showVersion - ShowNumVersion -> putStrLn cProjectVersion - ShowInterface f -> doShowIface dflags f - DoMake -> doMake session srcs - DoMkDependHS -> doMkDependHS session (map fst srcs) - StopBefore p -> oneShot dflags p srcs - DoInteractive -> interactiveUI session srcs Nothing - DoEval expr -> interactiveUI session srcs (Just expr) + ShowUsage -> showGhcUsage dflags cli_mode + PrintLibdir -> putStrLn (topDir dflags) + ShowVersion -> panic "ShowVersion should already have been handled" + ShowNumVersion -> panic "ShowNumVersion should already have been handled" + ShowInterface f -> doShowIface dflags f + DoMake -> doMake session srcs + DoMkDependHS -> doMkDependHS session (map fst srcs) + StopBefore p -> oneShot dflags p srcs + DoInteractive -> interactiveUI session srcs Nothing + DoEval expr -> interactiveUI session srcs (Just expr) dumpFinalStats dflags exitWith ExitSuccess -- 1.7.10.4