{-# LINE1"compiler/utils/Fingerprint.hsc"#-}{-# LANGUAGE CPP #-}-- -------------------------------------------------------------------------------- (c) The University of Glasgow 2006---- Fingerprints for recompilation checking and ABI versioning.---- http://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance---- ----------------------------------------------------------------------------moduleFingerprint(readHexFingerprint,fingerprintByteString,-- * Re-exported from GHC.FingerprintFingerprint(..),fingerprint0,fingerprintFingerprints,fingerprintData,fingerprintString,getFileHash)where#include "HsVersions.h" importGhcPrelude importForeignimportGHC.IOimportNumeric(readHex)importqualifiedData.ByteStringasBSimportqualifiedData.ByteString.UnsafeasBSimportGHC.Fingerprint-- useful for parsing the output of 'md5sum', should we want to do that.readHexFingerprint::String->FingerprintreadHexFingerprint s =Fingerprintw1 w2 where(s1 ,s2 )=splitAt16s [(w1 ,"")]=readHexs1 [(w2 ,"")]=readHex(take16s2 )fingerprintByteString::BS.ByteString->FingerprintfingerprintByteString bs =unsafeDupablePerformIO$BS.unsafeUseAsCStringLenbs $\(ptr ,len )->fingerprintData(castPtrptr )len