
On Wed, Feb 17, 2016 at 2:14 AM, Edward Z. Yang
Another large culprit for performance is that the fact that ghc --make must preprocess and parse the header of every local Haskell file: https://ghc.haskell.org/trac/ghc/ticket/618 (as well as https://ghc.haskell.org/trac/ghc/ticket/1290). Neil and I have observed that when you use something better (like Shake) recompilation performance gets a lot better, esp. when you have a lot of modules.
I can second this, and I suspect the reason I've never had slowness problems is that I use shake exclusively. I'm looking forward to your work with integrating shake into ghc. If it means we can get both shake's speed and parallelism as well as --make's ability to retain hi files in memory, it should give a really nice speed boost. I see a lot of "compilation IS NOT required", presumably that would be even faster if it didn't have to start a new ghc and inspect all the hi files again before finding that out!