From: Simon Marlow Date: Wed, 6 May 2009 19:48:02 +0000 (+0000) Subject: #2197: try to detect when GHCi is compiled with -prof and emit an error message X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=342b18fc5abca755d55a07449ea7183222782865 #2197: try to detect when GHCi is compiled with -prof and emit an error message --- diff --git a/ghc/InteractiveUI.hs b/ghc/InteractiveUI.hs index 4aa441e..323dc25 100644 --- a/ghc/InteractiveUI.hs +++ b/ghc/InteractiveUI.hs @@ -38,6 +38,7 @@ import Outputable hiding (printForUser, printForUserPartWay) import Module -- for ModuleEnv import Name import SrcLoc +import ObjLink -- Other random utilities import CmdLineParser @@ -285,6 +286,13 @@ findEditor = do interactiveUI :: [(FilePath, Maybe Phase)] -> Maybe [String] -> Ghc () interactiveUI srcs maybe_exprs = do + -- although GHCi compiles with -prof, it is not usable: the byte-code + -- compiler and interpreter don't work with profiling. So we check for + -- this up front and emit a helpful error message (#2197) + m <- liftIO $ lookupSymbol "PushCostCentre" + when (isJust m) $ + ghcError (InstallationError "GHCi cannot be used when compiled with -prof") + -- HACK! If we happen to get into an infinite loop (eg the user -- types 'let x=x in x' at the prompt), then the thread will block -- on a blackhole, and become unreachable during GC. The GC will