It reuses the .hi files already built for other modules. Those aren't in the source directory but under a build directory. If they don't exist there, it will build the dependencies to create them.
Brandon Allbery <allbery.b@gmail.com> writes:
> It's doing what you — but not ghc — consider "extra work", though. ghc
> expects to be compiling code, and doesn't have a separate code path for
> "load symbols from an external module by parsing its source code" instead
> of "load symbols from an external module by loading its .hsc file and
> object code", aside from HscInterpreted.
I'm confused: it sounds like you saying that only HscInterpreted can
load symbols of dependencies from object code. Then how does cabal+ghc
do this when I make a change to one file in my project and do a
recompile of the package?
BTW, I am seeing modules going through CodeGen that are not part of the
file's dependency graph... LoadUpTo is behaving more like LoadAll.
--
Best regards,
Sam
--