Facundo, If the interface in question is from a home package module, then it's required that the ABI of the specifically used function is modified rather than the ABI hash of the whole module. If the interface is from an external package then if the ABI of the entire module changes then that is sufficient to trigger recompilation.
Matt On Thu, Aug 11, 2022 at 12:11 PM Domínguez, Facundo <facundo.doming...@tweag.io> wrote: > > Dear devs, > > rules_haskell [1] recently earned the ability to skip recompiling modules > when the ABI hashes of dependencies don't change in interface files. > > We have noticed since then that sometimes ghc --make does avoid rebuilding > even when ABI hashes change. However, so far I've been unable to reproduce > this in the small. The wiki page on recompilation avoidance does remark that > a changing ABI hash is a necessary but not sufficient condition for > recompilation [2]. > > Does anyone have a small example showing how ghc avoids rebuilding even when > the ABI hash of a dependency changes? > > Thanks in advance! > Facundo > > [1] https://github.com/tweag/rules_haskell/issues/1760#issuecomment-1179102232 > [2] > https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/recompilation-avoidance#interface-file-invariants > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs