about summary refs log tree commit diff
path: root/src/test/incremental/thinlto
diff options
context:
space:
mode:
authorJonas Schievink <jonasschievink@gmail.com>2016-08-23 22:02:47 +0200
committerJonas Schievink <jonasschievink@gmail.com>2016-08-27 15:20:45 +0200
commit2eeca3ccd254b49aef83f12a1cb4179a686e8551 (patch)
tree9695d0b7a0de2751284274cab3fd60195d6ee0e8 /src/test/incremental/thinlto
parent5adf003b990c7fc76cca3a909c6f81cfe4a1102f (diff)
downloadrust-2eeca3ccd254b49aef83f12a1cb4179a686e8551.tar.gz
rust-2eeca3ccd254b49aef83f12a1cb4179a686e8551.zip
Make metadata encoding deterministic
`ty::Predicate` was being used as a key for a hash map, but its hash
implementation indirectly hashed addresses, which vary between each
compiler run. This is fixed by sorting predicates by their ID before
encoding them.

In my tests, rustc is now able to produce deterministic results when
compiling libcore and libstd.

I've beefed up `run-make/reproducible-build` to compare the produced
artifacts bit-by-bit. This doesn't catch everything, but should be a
good start.

cc #34902
Diffstat (limited to 'src/test/incremental/thinlto')
0 files changed, 0 insertions, 0 deletions