diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-05-28 12:52:58 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-05-28 12:52:58 +0000 |
commit | 526c3af1dc98987b6949f4df73c0debccf9875bd (patch) | |
tree | e9dd06d73e2f4281cec06d1f46ae63f1063799e6 /compiler/cmm/CmmSpillReload.hs | |
parent | 842e9d6628a27cf1f420d53f6a5901935dc50c54 (diff) | |
download | haskell-526c3af1dc98987b6949f4df73c0debccf9875bd.tar.gz |
Use MD5 checksums for recompilation checking (fixes #1372, #1959)
This is a much more robust way to do recompilation checking. The idea
is to create a fingerprint of the ABI of an interface, and track
dependencies by recording the fingerprints of ABIs that a module
depends on. If any of those ABIs have changed, then we need to
recompile.
In bug #1372 we weren't recording dependencies on package modules,
this patch fixes that by recording fingerprints of package modules
that we depend on. Within a package there is still fine-grained
recompilation avoidance as before.
We currently use MD5 for fingerprints, being a good compromise between
efficiency and security. We're not worried about attackers, but we
are worried about accidental collisions.
All the MD5 sums do make interface files a bit bigger, but compile
times on the whole are about the same as before. Recompilation
avoidance should be a bit more accurate than in 6.8.2 due to fixing
#1959, especially when using -O.
Diffstat (limited to 'compiler/cmm/CmmSpillReload.hs')
0 files changed, 0 insertions, 0 deletions