Skip to content
  • Simon Marlow's avatar
    Make GHCi & TH work when the compiler is built with -prof · ce1f1607
    Simon Marlow authored
    Summary:
    Amazingly, there were zero changes to the byte code generator and very
    few changes to the interpreter - mainly because we've used good
    abstractions that hide the differences between profiling and
    non-profiling.  So that bit was pleasantly straightforward, but there
    were a pile of other wibbles to get the whole test suite through.
    
    Note that a compiler built with -prof is now like one built with
    -dynamic, in that to use TH you have to build the code the same way.
    For dynamic, we automatically enable -dynamic-too when TH is required,
    but we don't have anything equivalent for profiling, so you have to
    explicitly use -prof when building code that uses TH with a profiled
    compiler.  For this reason Cabal won't work with TH.  We don't expect
    to ship a profiled compiler, so I think that's OK.
    
    Test Plan: validate with GhcProfiled=YES in validate.mk
    
    Reviewers: goldfire, bgamari, rwbarton, austin, hvr, erikd, ezyang
    
    Reviewed By: ezyang
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1407
    
    GHC Trac Issues: #4837, #545
    ce1f1607