> * do you use ghc --make or compile each file individually? Compiling
> individually is much slower.
Wow, I somehow totally missed that ghc --make has -j now, and it seems
to actually work. How about that. I guess I should switch away from
per-file now! I guess I just toss the *.hs -> [*.hs.o, *.hi] rule
entirely. But I still have to somehow tell shake that ghc --make
Something will update the whole giant set of .o and .hi files implied
by that, which seems hard... unless you can parse ghc output.
Otherwise it's back to the .PHONY days and just run ghc --make every
time, and hope it's quick no notice no changes are needed. If you use
shake with ghc --make, what is your approach?
I assume I still need to figure out dependent C files that are
"imported" via foreign import, but as far as I know that has to be
some kind of crazy hack anyway, e.g. magic comment, or use foreign
import "something.h" and assume something.h has a corresponding
something.c.
But... I suppose this is going to run into ghci's timestamp-only
recompilation, right? Presumably ghc's recompile avoidance would skip
them, which means that ghci would never want to load them. But it
might be an easier sell to say ghc should at least touch the .o file
when it determines it doesn't have to compile it. Actually viewed
this way it seems like an internal inconsistency between ghc --make
and ghci.