<div dir="ltr">Dear devs,<div><br></div><div>rules_haskell [1] recently earned the ability to skip recompiling modules when the ABI hashes of dependencies don't change in interface files.</div><div><br></div><div>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].</div><div><br></div><div>Does anyone have a small example showing how ghc avoids rebuilding even when the ABI hash of a dependency changes?</div><div><br></div><div>Thanks in advance!</div><div>Facundo</div><div><br></div><div>[1] <a href="https://github.com/tweag/rules_haskell/issues/1760#issuecomment-1179102232">https://github.com/tweag/rules_haskell/issues/1760#issuecomment-1179102232</a></div><div>[2] <a href="https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/recompilation-avoidance#interface-file-invariants">https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/recompilation-avoidance#interface-file-invariants</a></div></div>