Skip to content
  • Edward Z. Yang's avatar
    Support stage 1 Template Haskell (non-quasi) quotes, fixes #10382. · 28257cae
    Edward Z. Yang authored
    
    
    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: 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
    28257cae