Skip to content
  • niteria's avatar
    Reduce non-determinism in ABI hashes with RULES and instance decls · 3448f982
    niteria authored and Simon Marlow's avatar Simon Marlow committed
    Summary:
    Before this change the `RULES` would be attached to one for the names from
    the module that appear on the left hand side. The choice depended on the
    `uniq` that was generated, which are known to be non-deterministic (a
    separate, bigger problem). Now we use `OccName`s which should be stable.
    
    Analogously for instance declarations, but they are attached to one of
    the types involved.
    
    Test Plan:
    contbuild
    it made `Data.Text.Internal.Fusion.Common` interface stable, previously
    stream fusion rule would be attached either to `streamList` or
    `unstreamList` depending on if the module was compiled after `cabal
    clean` or after `find | grep '\.o$' | xargs rm`.
    
    Reviewers: simonpj, austin, bgamari, simonmar
    
    Subscribers: puffnfresh, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1073
    
    GHC Trac Issues: #4012
    3448f982