From 342b18fc5abca755d55a07449ea7183222782865 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 6 May 2009 19:48:02 +0000 Subject: [PATCH] #2197: try to detect when GHCi is compiled with -prof and emit an error message --- ghc/InteractiveUI.hs | 8 ++++++++ 1 file changed, 8 insertions(+) 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 -- 1.7.10.4