Support generating HIE files
authorAlec Theriault <alec.theriault@gmail.com>
Tue, 11 Dec 2018 18:47:35 +0000 (13:47 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 11 Dec 2018 19:23:22 +0000 (14:23 -0500)
commitf582379de2c4ff7577235c926ad953debdae3cac
treedf39b7a00d1730be04da120ca452517043478809
parent21339c9f6bfb952a3a0b8de5ee649d46dfbf0d9b
Support generating HIE files

Adds a `-fenable-ide-info` flag which instructs GHC to generate `.hie`
files (see the wiki page:
https://ghc.haskell.org/trac/ghc/wiki/HIEFiles).

This is a rebased version of Zubin Duggal's (@wz1000) GHC changes for
his GSOC project, as posted here:
https://gist.github.com/wz1000/5ed4ddd0d3e96d6bc75e095cef95363d.

Test Plan: ./validate

Reviewers: bgamari, gershomb, nomeata, alanz, sjakobi

Reviewed By: alanz, sjakobi

Subscribers: alanz, hvr, sjakobi, rwbarton, wz1000, carter

Differential Revision: https://phabricator.haskell.org/D5239
55 files changed:
compiler/backpack/DriverBkp.hs
compiler/basicTypes/Module.hs
compiler/ghc.cabal.in
compiler/hieFile/HieAst.hs [new file with mode: 0644]
compiler/hieFile/HieBin.hs [new file with mode: 0644]
compiler/hieFile/HieDebug.hs [new file with mode: 0644]
compiler/hieFile/HieTypes.hs [new file with mode: 0644]
compiler/hieFile/HieUtils.hs [new file with mode: 0644]
compiler/iface/MkIface.hs
compiler/main/DriverPipeline.hs
compiler/main/DynFlags.hs
compiler/main/Finder.hs
compiler/main/GhcMake.hs
compiler/main/HscMain.hs
compiler/main/HscTypes.hs
compiler/typecheck/TcRnMonad.hs
compiler/utils/Binary.hs
docs/users_guide/8.8.1-notes.rst
docs/users_guide/separate_compilation.rst
docs/users_guide/using.rst
hadrian/src/Settings/Builders/Ghc.hs
rules/distdir-way-opts.mk
testsuite/tests/driver/recomp018/A.hs [new file with mode: 0644]
testsuite/tests/driver/recomp018/B.hs [new file with mode: 0644]
testsuite/tests/driver/recomp018/C.hs [new file with mode: 0644]
testsuite/tests/driver/recomp018/Makefile [new file with mode: 0644]
testsuite/tests/driver/recomp018/all.T [new file with mode: 0644]
testsuite/tests/driver/recomp018/recomp018.stdout [new file with mode: 0644]
testsuite/tests/hiefile/Makefile [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/CPP.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/CPP.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/Constructors.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/Constructors.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/all.T [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie001.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie001.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie002.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie003.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie003.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie004.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie004.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie005.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie005.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie006.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie006.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie007.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie007.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie008.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie008.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie009.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie009.stderr [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie010.hs [new file with mode: 0644]
testsuite/tests/hiefile/should_compile/hie010.stderr [new file with mode: 0644]
testsuite/tests/regalloc/regalloc_unit_tests.hs
utils/ghc-in-ghci/settings.ghci