summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2014-10-29 23:15:07 -0500
committerAustin Seipp <austin@well-typed.com>2014-10-29 23:15:08 -0500
commitc211f8e55b8dd1d43854ce3c4554ffbafb0009f9 (patch)
treedde3ed55930fed9346a167e07ce5538cc2a59179
parent3d27f6975467ea05bc7e8aaf9e5a3c26d1cd20a6 (diff)
downloadhaskell-c211f8e55b8dd1d43854ce3c4554ffbafb0009f9.tar.gz
Add __GLASGOW_HASKELL_TH__=YES/NO to CPP definitions
Test Plan: None really. Reviewers: austin Reviewed By: austin Subscribers: thomie, carter, simonmar Differential Revision: https://phabricator.haskell.org/D386 GHC Trac Issues: #9734
-rw-r--r--compiler/main/DriverPipeline.hs6
-rw-r--r--docs/users_guide/phases.xml15
2 files changed, 21 insertions, 0 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index 6bc67e7ac8..66c6e97d0c 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -2100,6 +2100,11 @@ doCpp dflags raw input_fn output_fn = do
backend_defs <- getBackendDefs dflags
+#ifdef GHCI
+ let th_defs = [ "-D__GLASGOW_HASKELL_TH__=YES" ]
+#else
+ let th_defs = [ "-D__GLASGOW_HASKELL_TH__=NO" ]
+#endif
-- Default CPP defines in Haskell source
ghcVersionH <- getGhcVersionPathName dflags
let hsSourceCppOpts =
@@ -2112,6 +2117,7 @@ doCpp dflags raw input_fn output_fn = do
++ map SysTools.Option hsSourceCppOpts
++ map SysTools.Option target_defs
++ map SysTools.Option backend_defs
+ ++ map SysTools.Option th_defs
++ map SysTools.Option hscpp_opts
++ map SysTools.Option sse_defs
++ map SysTools.Option avx_defs
diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml
index 085ebbf509..b05de99f36 100644
--- a/docs/users_guide/phases.xml
+++ b/docs/users_guide/phases.xml
@@ -468,6 +468,21 @@ $ cat foo.hspp</screen>
<varlistentry>
<term>
+ <constant>&lowbar;&lowbar;GLASGOW&lowbar;HASKELL&lowbar;TH&lowbar;&lowbar;</constant>
+ <indexterm><primary><constant>&lowbar;&lowbar;GLASGOW&lowbar;HASKELL&lowbar;TH&lowbar;&lowbar;</constant></primary></indexterm>
+ </term>
+ <listitem>
+ <para>
+ This is set to <literal>YES</literal> when the compiler supports Template Haskell, and to
+ <literal>NO</literal> when not. The latter is the case for a stage-1 compiler during bootstrapping, or
+ on architectures where the interpreter is not available.
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>
<constant>&lowbar;&lowbar;GLASGOW&lowbar;HASKELL&lowbar;LLVM&lowbar;&lowbar;</constant>
<indexterm><primary><constant>&lowbar;&lowbar;GLASGOW&lowbar;HASKELL&lowbar;LLVM&lowbar;&lowbar;</constant></primary></indexterm>
</term>