• Edward Z. Yang's avatar
    Support stage 1 Template Haskell (non-quasi) quotes, fixes #10382. · 28257cae
    Edward Z. Yang authored
    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: default avatarEdward 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
ghc.mk 50.1 KB