On 16 Sep 2015, at 10:43, Simon Peyton Jones wrote:
> I’ll hypothesise that you mean
> · In –make mode, with unchanged source I want to get the same output
> from compiling M.hs if M’s imported interface files have not changed.
> But even then I’m confused. Under those circumstances, why are we
> recompiling at all?
My understanding is that currently, if you build a Haskell project from clean
sources with ghc --make, then wipe all the .o/.hi files, and rebuild again from
clean, with all the same flags and environment, you are unlikely to end up with
identical binaries for either the .o or .hi files. This lack of binary
reproducibility is a performance problem within a larger build system (of which
the Haskell components are only a part): if the larger build system sees that
the Haskell .hi or .o has apparently changed (even though the sources+flags
have not changed at all), then many other components that depend on them may be
triggered for an unnecessary rebuild.
Regards,
Malcolm
_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs