• shlevy's avatar
    Make cost centre symbol names deterministic. · d8e47a2e
    shlevy authored
    Previously, non-CAF cost centre symbol names contained a unique,
    leading to non-deterministic object files which, among other issues,
    can lead to an inconsistency causing linking failure when using cached
    builds sourced from multiple machines, such as with nix. Now, each
    cost centre symbol is annotated with the type of cost centre it
    is (CAF, expression annotation, declaration annotation, or HPC) and,
    when a single module has multiple cost centres with the same name and
    type, a 0-based index.
    Reviewers: bgamari, simonmar
    Reviewed By: bgamari
    Subscribers: niteria, simonmar, RyanGlScott, osa1, rwbarton, thomie, carter
    GHC Trac Issues: #4012, #12935
    Differential Revision: https://phabricator.haskell.org/D4388
TcRnTypes.hs 149 KB