With one command you can load GHC into GHCi (assuming a configured source tree: ./boot && ./configure):
ghcid should also work without any further modifications.
Old GHC in GHCi script
This section is mostly out of date but retained here until the current iteration of the ghci script supports running :main.
This page says how you can load GHC into GHCi for more iterative development. Csongor Kiss was the first person to record this feat. The scaffolding has been added to master since Aug 2018, and if you have to use an older working copy, refer to the guide at the bottom (Old GHC source tree).
After building GHC, just do the following in the repository root:
This works best on systems with a decent amount of RAM. The GHCi process uses about 3.5GB initially, and the usage sometimes increases during development. So, if you have less than 8GB of RAM, loading GHC into GHCi probably will not aid development efficiency.
Adding -j4 might speed up the process. Increasing the number will utilize more cores.
The script will also run :load Main, to load GHC's main module. After that, running main will run an inner GHCi, because there is a default :set args --interactive .... To override this, use :set args ... or :main ....
If you don't want to wait for :load Main, since you want to load some other module, then you can use Ctrl+C to cancel the initial load.
There is a .ghcid file which allows use of Neil Mitchell's handy ghcid tool directly by just running ghcid. This tool drives GHCi to automatically reload when files change.