Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/ca64cee6f870d2c51c558d8e7203345dfd5c7954

>---------------------------------------------------------------

commit ca64cee6f870d2c51c558d8e7203345dfd5c7954
Author: Ian Lynagh <[email protected]>
Date:   Sun Sep 23 21:45:11 2012 +0100

    Use finiteBitSize rather than bitSize when it is available

>---------------------------------------------------------------

 compiler/utils/Serialized.hs |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/compiler/utils/Serialized.hs b/compiler/utils/Serialized.hs
index 26cca6c..902d2fe 100644
--- a/compiler/utils/Serialized.hs
+++ b/compiler/utils/Serialized.hs
@@ -95,16 +95,26 @@ deserializeConstr bytes k = deserializeWord8 bytes $ 
\constr_ix bytes ->
                                 x -> error $ "deserializeConstr: unrecognised 
serialized constructor type " ++ show x ++ " in context " ++ show bytes
 
 
+#if __GLASGOW_HASKELL__ < 707
 serializeFixedWidthNum :: forall a. (Num a, Integral a, Bits a) => a -> 
[Word8] -> [Word8]
 serializeFixedWidthNum what = go (bitSize what) what
+#else
+serializeFixedWidthNum :: forall a. (Num a, Integral a, FiniteBits a) => a -> 
[Word8] -> [Word8]
+serializeFixedWidthNum what = go (finiteBitSize what) what
+#endif
   where
     go :: Int -> a -> [Word8] -> [Word8]
     go size current rest
       | size <= 0 = rest
       | otherwise = fromIntegral (current .&. 255) : go (size - 8) (current 
`shiftR` 8) rest
 
+#if __GLASGOW_HASKELL__ < 707
 deserializeFixedWidthNum :: forall a b. (Num a, Integral a, Bits a) => [Word8] 
-> (a -> [Word8] -> b) -> b
 deserializeFixedWidthNum bytes k = go (bitSize (undefined :: a)) bytes k
+#else
+deserializeFixedWidthNum :: forall a b. (Num a, Integral a, FiniteBits a) => 
[Word8] -> (a -> [Word8] -> b) -> b
+deserializeFixedWidthNum bytes k = go (finiteBitSize (undefined :: a)) bytes k
+#endif
   where
     go :: Int -> [Word8] -> (a -> [Word8] -> b) -> b
     go size bytes k



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to