Plugins: How to determine ghc vs ghci

Simon Marlow marlowsd at
Fri Dec 4 08:34:40 UTC 2015

On 24/11/2015 07:37, Levent Erkok wrote:
> I'm working on a plugin, and would like to be able to tell if it's GHC
> or GHCi that's running.
> I tried:
>     df   <- getDynFlags
>     let isGHCi = ghcMode df == CompManager
> Alas, while that correctly tells apart "ghci" from "ghc -c", it also
> returns True when ghc is called without the "-c" argument.
> Is there a better/more robust way of figuring out whether we're in an
> interactive session?

The best way is to check whether hscTarget df == HscInterpreted, and you 
can also check whether ghcLink df == LinkInMemory.

Checking for the `--interactive` flag only works for the standalone 
GHCi, and not users of the GHC API.


More information about the ghc-devs mailing list