summaryrefslogtreecommitdiff
path: root/compiler/utils/Fingerprint.hsc
Commit message (Collapse)AuthorAgeFilesLines
* Globally replace "hackage.haskell.org" with "ghc.haskell.org"Simon Marlow2013-10-011-1/+1
|
* Fix validation failure in Fingerprint.hscAustin Seipp2013-08-231-1/+1
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Fingerprint.getFileHash: Fix not reading file at all.Niklas Hambüchen2013-08-231-1/+8
| | | | | | This lead to the stage1 compiler calculating random iface hashes. Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Fingerprint: Fix comment typoNiklas Hambüchen2013-08-231-1/+1
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Remove trailing whitespace from Fingerprint.hscAustin Seipp2013-08-221-1/+1
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Fix -Werror failure in Fingerprint.hscAustin Seipp2013-08-221-0/+3
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Fix interface hashes including time stamp of dependent files.Niklas Hambüchen2013-08-221-2/+29
| | | | | | | | | | | | | | | | | | | | | | | Fixes #8144. Before, the modification time of e.g. #included files (and everything that ends up as a UsageFile, e.g. via addDependentFile) was taken as input for the interface hash of a module. This lead to different hashes for identical inputs on every compilation. We now use file content hashes instead. This changes the interface file format. You will get "Binary.get(Usage): 50" when you try to do an incremental using .hi files that were created with a GHC 7.7 (only) older than this commit. To calculate the md5 hash (`Fingerprint`) of a file in constant space, there now is GHC.Fingerprint.getFileHash, and a fallback version for older GHCs that needs to load the file into memory completely (only used when compiling stage1 with an older GHC). Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Set the way to 'dynamic' when running GHCi if GHCi is dynamically linkedIan Lynagh2013-03-151-0/+1
|
* De-orphan the Outputable Fingerprint instanceIan Lynagh2012-08-051-7/+0
|
* GHC 7.4 is now required for building HEADIan Lynagh2012-07-201-64/+0
|
* Remove a workaround for GHC 6.4.2Ian Lynagh2012-07-161-4/+1
|
* Move -fno-warn-orphan flag into individual modulesIan Lynagh2012-07-151-0/+1
|
* Sync the typeable fingerprinting with baseIan Lynagh2011-07-221-2/+18
|
* omit the local MD5 implementation if we can get it fromSimon Marlow2011-07-121-15/+24
| | | | GHC.Fingerprint in base instead.
* Fix an unused import warningIan Lynagh2009-07-071-1/+0
|
* FIX BUILD with GHC 6.4.xSimon Marlow2008-05-291-1/+4
|
* Use MD5 checksums for recompilation checking (fixes #1372, #1959)Simon Marlow2008-05-281-0/+77
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.