Refine the GHCI macro into HAVE[_{INTERNAL, EXTERNAL}]_INTERPRETER
authorAlp Mestanogullari <alpmestan@gmail.com>
Mon, 6 May 2019 16:49:33 +0000 (18:49 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Tue, 11 Jun 2019 22:40:37 +0000 (18:40 -0400)
commit39f50bff3ea913a7f4b1d915660bcf77b9327e2e
tree333057c89bb94838cd12cf03deb7e7a5dda83339
parentfe7e7e4a950a77326cc16f4ade30a67d20d7cdd5
Refine the GHCI macro into HAVE[_{INTERNAL, EXTERNAL}]_INTERPRETER

As discussed in #16331, the GHCI macro, defined through 'ghci' flags
in ghc.cabal.in, ghc-bin.cabal.in and ghci.cabal.in, is supposed to indicate
whether GHC is built with support for an internal interpreter, that runs in
the same process. It is however overloaded in a few places to mean
"there is an interpreter available", regardless of whether it's an internal
or external interpreter.

For the sake of clarity and with the hope of more easily being able to
build stage 1 GHCs with external interpreter support, this patch splits
the previous GHCI macro into 3 different ones:

- HAVE_INTERNAL_INTERPRETER: GHC is built with an internal interpreter
- HAVE_EXTERNAL_INTERPRETER: GHC is built with support for external interpreters
- HAVE_INTERPRETER: HAVE_INTERNAL_INTERPRETER || HAVE_EXTERNAL_INTERPRETER
17 files changed:
compiler/ghc.cabal.in
compiler/ghci/GHCi.hs
compiler/main/DynFlags.hs
compiler/main/DynamicLoading.hs
compiler/rename/RnExpr.hs
compiler/simplCore/SimplCore.hs
compiler/typecheck/TcAnnotations.hs
compiler/typecheck/TcPluginM.hs
compiler/utils/Util.hs
ghc/Main.hs
ghc/ghc-bin.cabal.in
hadrian/src/Settings/Packages.hs
libraries/ghci/GHCi/BreakArray.hs
libraries/ghci/GHCi/InfoTable.hsc
libraries/ghci/ghci.cabal.in
testsuite/tests/codeGen/should_compile/jmp_tbl.hs
utils/ghc-in-ghci/settings.ghci