summaryrefslogtreecommitdiff
path: root/compiler/iface
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2019-10-16 14:44:44 +0300
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-10-29 03:47:44 -0400
commitbbdd54aab2f727bd90efe237eeb72e5e014b0cb2 (patch)
tree8157e1014bae7f99018d25d4a41404c6f3174766 /compiler/iface
parent3bd3456f144fa801a409147a80673f88360c16a2 (diff)
downloadhaskell-bbdd54aab2f727bd90efe237eeb72e5e014b0cb2.tar.gz
Return ModIface in compilation pipeline, remove IORef hack for generating ModIfaces
The compilation phases now optionally return ModIface (for phases that generate an interface, currently only HscOut when (re)compiling a file). The value is then used by compileOne' to return the generated interface with HomeModInfo (which is then used by the batch mode compiler when building rest of the tree). hscIncrementalMode also returns a DynFlags with plugin info, to be used in the rest of the pipeline. Unfortunately this introduces a (perhaps less bad) hack in place of the previous IORef: we now record the DynFlags used to generate the partial infterface in HscRecomp and use the same DynFlags when generating the full interface. I spent almost three days trying to understand what's changing in DynFlags that causes a backpack test to fail, but I couldn't figure it out. There's a FIXME added next to the field so hopefully someone who understands this better than I do will fix it leter.
Diffstat (limited to 'compiler/iface')
0 files changed, 0 insertions, 0 deletions