From 10c4d1944f27aa7dc939ccb7e17e780602bdc47d Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sun, 8 Aug 2010 14:25:42 +0000 Subject: [PATCH] Send ghc progress output to stdout; fixes #3636 --- compiler/main/DynFlags.hs | 7 ++++--- compiler/main/ErrUtils.lhs | 5 +++-- compiler/main/ErrUtils.lhs-boot | 3 ++- compiler/utils/Outputable.lhs | 5 ++++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 2971aa1..ccf5050 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -742,9 +742,10 @@ defaultDynFlags = log_action = \severity srcSpan style msg -> case severity of - SevInfo -> printErrs (msg style) - SevFatal -> printErrs (msg style) - _ -> do + SevOutput -> printOutput (msg style) + SevInfo -> printErrs (msg style) + SevFatal -> printErrs (msg style) + _ -> do hPutChar stderr '\n' printErrs ((mkLocMessage srcSpan msg) style) -- careful (#2302): printErrs prints in UTF-8, whereas diff --git a/compiler/main/ErrUtils.lhs b/compiler/main/ErrUtils.lhs index f1328e0..3ab89bd 100644 --- a/compiler/main/ErrUtils.lhs +++ b/compiler/main/ErrUtils.lhs @@ -53,7 +53,8 @@ pprMessageBag :: Bag Message -> SDoc pprMessageBag msgs = vcat (punctuate blankLine (bagToList msgs)) data Severity - = SevInfo + = SevOutput + | SevInfo | SevWarning | SevError | SevFatal @@ -310,7 +311,7 @@ fatalErrorMsg dflags msg = log_action dflags SevFatal noSrcSpan defaultErrStyle compilationProgressMsg :: DynFlags -> String -> IO () compilationProgressMsg dflags msg - = ifVerbose dflags 1 (log_action dflags SevInfo noSrcSpan defaultUserStyle (text msg)) + = ifVerbose dflags 1 (log_action dflags SevOutput noSrcSpan defaultUserStyle (text msg)) showPass :: DynFlags -> String -> IO () showPass dflags what diff --git a/compiler/main/ErrUtils.lhs-boot b/compiler/main/ErrUtils.lhs-boot index 77d6cfd..a4e1cab 100644 --- a/compiler/main/ErrUtils.lhs-boot +++ b/compiler/main/ErrUtils.lhs-boot @@ -5,7 +5,8 @@ import Outputable (SDoc) import SrcLoc (SrcSpan) data Severity - = SevInfo + = SevOutput + | SevInfo | SevWarning | SevError | SevFatal diff --git a/compiler/utils/Outputable.lhs b/compiler/utils/Outputable.lhs index ba61a08..c6ba81c 100644 --- a/compiler/utils/Outputable.lhs +++ b/compiler/utils/Outputable.lhs @@ -34,7 +34,7 @@ module Outputable ( speakNth, speakNTimes, speakN, speakNOf, plural, -- * Converting 'SDoc' into strings and outputing it - printSDoc, printErrs, hPrintDump, printDump, + printSDoc, printErrs, printOutput, hPrintDump, printDump, printForC, printForAsm, printForUser, printForUserPartWay, pprCode, mkCodeStyle, showSDoc, showSDocOneLine, @@ -287,6 +287,9 @@ printErrs :: Doc -> IO () printErrs doc = do Pretty.printDoc PageMode stderr doc hFlush stderr +printOutput :: Doc -> IO () +printOutput doc = Pretty.printDoc PageMode stdout doc + printDump :: SDoc -> IO () printDump doc = hPrintDump stdout doc -- 1.7.10.4