summaryrefslogtreecommitdiff
path: root/compiler/utils/md5.h
Commit message (Collapse)AuthorAgeFilesLines
* cpp: Use #pragma once instead of #ifndef guardsBen Gamari2017-04-231-7/+1
| | | | | | | | | | | | | | This both says what we mean and silences a bunch of spurious CPP linting warnings. This pragma is supported by all CPP implementations which we support. Reviewers: austin, erikd, simonmar, hvr Reviewed By: simonmar Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3482
* [ci skip] Kill tabs in md5.hAustin Seipp2014-10-011-3/+3
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Use MD5 checksums for recompilation checking (fixes #1372, #1959)Simon Marlow2008-05-281-0/+24
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.