Repository : ssh://darcs.haskell.org//srv/darcs/packages/base On branch : master
http://hackage.haskell.org/trac/ghc/changeset/905989a7d5e26eb15154534529d116ed1783e996 >--------------------------------------------------------------- commit 905989a7d5e26eb15154534529d116ed1783e996 Author: Ian Lynagh <[email protected]> Date: Fri Jul 22 22:57:19 2011 +0100 Sync the typeable fingerprinting with GHC >--------------------------------------------------------------- GHC/Fingerprint.hs | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/GHC/Fingerprint.hs b/GHC/Fingerprint.hs index 817afa8..01a4c26 100644 --- a/GHC/Fingerprint.hs +++ b/GHC/Fingerprint.hs @@ -26,8 +26,6 @@ import GHC.List import GHC.Real import Foreign import Foreign.C -import GHC.IO.Encoding -import GHC.Foreign import GHC.Fingerprint.Type @@ -54,10 +52,18 @@ fingerprintData buf len = do c_MD5Final pdigest pctxt peek (castPtr pdigest :: Ptr Fingerprint) +-- This is duplicated in compiler/utils/Fingerprint.hsc fingerprintString :: String -> Fingerprint fingerprintString str = unsafeDupablePerformIO $ - GHC.Foreign.withCStringLen utf8 str $ \(p,len) -> - fingerprintData (castPtr p) len + withArrayLen word8s $ \len p -> + fingerprintData p len + where word8s = concatMap f str + f c = let w32 :: Word32 + w32 = fromIntegral (ord c) + in [fromIntegral (w32 `shiftR` 24), + fromIntegral (w32 `shiftR` 16), + fromIntegral (w32 `shiftR` 8), + fromIntegral w32] data MD5Context _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
