diff options
author | Edward Z. Yang <ezyang@cs.stanford.edu> | 2015-05-04 16:10:05 -0700 |
---|---|---|
committer | Edward Z. Yang <ezyang@cs.stanford.edu> | 2015-05-09 00:39:31 -0700 |
commit | 28257cae77023f2ccc4cc1c0cd1fbbd329947a00 (patch) | |
tree | b33cb09a17cd5fd476e0123740a0aeee200a5fbb /docs/users_guide/glasgow_exts.xml | |
parent | 2601a436b3a52f52cec08599041b665b9887baa2 (diff) | |
download | haskell-28257cae77023f2ccc4cc1c0cd1fbbd329947a00.tar.gz |
Support stage 1 Template Haskell (non-quasi) quotes, fixes #10382.
Summary:
This commit adds stage 1 support for Template Haskell
quoting, e.g. [| ... expr ... |], which is useful
for authors of quasiquoter libraries that do not actually
need splices. The TemplateHaskell extension now does not
unconditionally fail; it only fails if the renamer encounters
a splice that it can't run.
In order to make sure the referenced data structures
are consistent, template-haskell is now a boot library.
In the following patches, there are:
- A few extra safety checks which should be enabled
in stage1
- Separation of the th/ testsuite into quotes/ which
can be run on stage1
Note for reviewer: big diff changes are simply code
being moved out of an ifdef; there was no other substantive
change to that code.
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate
Reviewers: simonpj, austin, goldfire
Subscribers: bgamari, thomie
Differential Revision: https://phabricator.haskell.org/D876
GHC Trac Issues: #10382
Diffstat (limited to 'docs/users_guide/glasgow_exts.xml')
-rw-r--r-- | docs/users_guide/glasgow_exts.xml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/docs/users_guide/glasgow_exts.xml b/docs/users_guide/glasgow_exts.xml index 20204ca164..303833a291 100644 --- a/docs/users_guide/glasgow_exts.xml +++ b/docs/users_guide/glasgow_exts.xml @@ -9571,8 +9571,8 @@ Typed expression splices and quotations are supported.) <listitem><para> If you are building GHC from source, you need at least a stage-2 bootstrap compiler to - run Template Haskell. A stage-1 compiler will reject the TH constructs. Reason: TH - compiles and runs a program, and then looks at the result. So it's important that + run Template Haskell splices and quasi-quotes. A stage-1 compiler will only accept regular quotes of Haskell. Reason: TH splices and quasi-quotes + compile and run a program, and then looks at the result. So it's important that the program it compiles produces results whose representations are identical to those of the compiler itself. </para></listitem> |