Background

A few months ago I added -fexternal-interpreter to GHC:
When -fexternal-interpreter is used, GHC runs interpreted code in a separate subprocess, and communicates with it using binary messages over a pipe.

-fexternal-interpreter currently implements all of TH, quasi-quoting, annotations, and all the GHCi features except for some features of the debugger.  It is also now implemented on Windows, thanks to Tamar Christina.

Proposal

I'd like to propose that going forward we commit to maintaining full support for -fexternal-interpreter, with a view to making it the default.

Why?
How?

Why now?

There are some TH changes in the pipeline that will need special attention to work with -fexternal-interpreter.  e.g. https://phabricator.haskell.org/D2286 and https://ghc.haskell.org/trac/ghc/wiki/TemplateHaskell/Introspective, so I'd like to raise it now so we can keep the issue in mind.


Cheers

Simon