diff --git a/compiler/ghci/InteractiveUI.hs b/compiler/ghci/InteractiveUI.hs index 02344cf561fdbd0e7663ca66ad2eaa3fa122a40b..2497bada366f2054294a1bac73af41039934ffc2 100644 --- a/compiler/ghci/InteractiveUI.hs +++ b/compiler/ghci/InteractiveUI.hs @@ -8,7 +8,8 @@ ----------------------------------------------------------------------------- module InteractiveUI ( interactiveUI, - ghciWelcomeMsg + ghciWelcomeMsg, + ghciShortWelcomeMsg ) where #include "HsVersions.h" @@ -90,6 +91,10 @@ ghciWelcomeMsg = "/ /_\\\\/ __ / /___| | http://www.haskell.org/ghc/\n"++ "\\____/\\/ /_/\\____/|_| Type :? for help.\n" +ghciShortWelcomeMsg = + "GHCi, version " ++ cProjectVersion ++ + ": http://www.haskell.org/ghc/ :? for help" + type Command = (String, String -> GHCi Bool, Bool, String -> IO [String]) cmdName (n,_,_,_) = n diff --git a/compiler/main/Main.hs b/compiler/main/Main.hs index d5e8de75c3cbc450afa16bf83f6cd1039d79c3e9..2b173104fb207d7dd002fbfd4771fc3ee5c1a8f4 100644 --- a/compiler/main/Main.hs +++ b/compiler/main/Main.hs @@ -24,7 +24,7 @@ import HscMain ( newHscEnv ) import DriverPipeline ( oneShot, compileFile ) import DriverMkDepend ( doMkDependHS ) #ifdef GHCI -import InteractiveUI ( ghciWelcomeMsg, interactiveUI ) +import InteractiveUI ( ghciWelcomeMsg, ghciShortWelcomeMsg, interactiveUI ) #endif -- Various other random stuff that we need @@ -430,8 +430,10 @@ showBanner cli_mode dflags = do let verb = verbosity dflags -- Show the GHCi banner # ifdef GHCI - when (isInteractiveMode cli_mode && verb >= 1) $ - hPutStrLn stdout ghciWelcomeMsg + let msg = if opt_ShortGhciBanner + then ghciShortWelcomeMsg + else ghciWelcomeMsg + when (isInteractiveMode cli_mode && verb >= 1) $ hPutStrLn stdout msg # endif -- Display details of the configuration in verbose mode diff --git a/compiler/main/StaticFlags.hs b/compiler/main/StaticFlags.hs index 0d17af2dcbeddc3063d16d2f6fac2e284fbeca3e..06a47b5a653c3d393293a77c78f1e983df93f4fb 100644 --- a/compiler/main/StaticFlags.hs +++ b/compiler/main/StaticFlags.hs @@ -61,6 +61,7 @@ module StaticFlags ( -- misc opts opt_IgnoreDotGhci, + opt_ShortGhciBanner, opt_ErrorSpans, opt_GranMacros, opt_HiVersion, @@ -143,6 +144,8 @@ static_flags = [ ------- GHCi ------------------------------------------------------- ( "ignore-dot-ghci", PassFlag addOpt ) , ( "read-dot-ghci" , NoArg (removeOpt "-ignore-dot-ghci") ) + , ( "short-ghci-banner", PassFlag addOpt ) + , ( "long-ghci-banner" , NoArg (removeOpt "-short-ghci-banner") ) ------- ways -------------------------------------------------------- , ( "prof" , NoArg (addWay WayProf) ) @@ -273,6 +276,7 @@ unpacked_opts = opt_IgnoreDotGhci = lookUp FSLIT("-ignore-dot-ghci") +opt_ShortGhciBanner = lookUp FSLIT("-short-ghci-banner") -- debugging opts opt_PprStyle_Debug = lookUp FSLIT("-dppr-debug") diff --git a/docs/users_guide/flags.xml b/docs/users_guide/flags.xml index aca1d4763e91fad416c471212083a5dbdb49a836..0ff729b2b6f9b3532a2026514534de8ecd82f00b 100644 --- a/docs/users_guide/flags.xml +++ b/docs/users_guide/flags.xml @@ -481,6 +481,18 @@ <entry>static</entry> <entry>-</entry> </row> + <row> + <entry><option>-short-ghci-banner</option></entry> + <entry>Display a one-line banner at GHCi startup</entry> + <entry>static</entry> + <entry>-</entry> + </row> + <row> + <entry><option>-long-ghci-banner</option></entry> + <entry>Display a full banner at GHCi startup</entry> + <entry>static</entry> + <entry>-</entry> + </row> <row> <entry><option>-fdebugging</option></entry> <entry>Generate bytecode enabled for debugging</entry>