X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Futils%2FBinary.hs;h=a74d42043ce7a03996e8385994eb070a094d22c1;hb=5d92b931e7278d214e585adce03014bfbd54c16f;hp=cbfec74cff1077464a1e3448c5f5f8a5d3d1951b;hpb=1c83695b5b9ae3175c18908c1d58aeadb1f225ae;p=ghc-hetmet.git diff --git a/compiler/utils/Binary.hs b/compiler/utils/Binary.hs index cbfec74..a74d420 100644 --- a/compiler/utils/Binary.hs +++ b/compiler/utils/Binary.hs @@ -71,9 +71,6 @@ import BasicTypes import Foreign import Data.Array -import Data.Bits -import Data.Int -import Data.Word import Data.IORef import Data.Char ( ord, chr ) import Data.Typeable @@ -84,7 +81,6 @@ import System.IO.Error ( mkIOError, eofErrorType ) import GHC.Real ( Ratio(..) ) import GHC.Exts import GHC.Word ( Word8(..) ) -import System.IO ( openBinaryFile ) #if __GLASGOW_HASKELL__ >= 611 import GHC.IO ( IO(..) ) @@ -146,11 +142,11 @@ class Binary a where -- define one of put_, put. Use of put_ is recommended because it -- is more likely that tail-calls can kick in, and we rarely need the -- position return value. - put_ bh a = do put bh a; return () + put_ bh a = do _ <- put bh a; return () put bh a = do p <- tellBin bh; put_ bh a; return p putAt :: Binary a => BinHandle -> Bin a -> a -> IO () -putAt bh p x = do seekBin bh p; put bh x; return () +putAt bh p x = do seekBin bh p; put_ bh x; return () getAt :: Binary a => BinHandle -> Bin a -> IO a getAt bh p = do seekBin bh p; get bh @@ -392,17 +388,14 @@ instance Binary Int64 where instance Binary () where put_ _ () = return () get _ = return () --- getF bh p = case getBitsF bh 0 p of (_,b) -> ((),b) instance Binary Bool where put_ bh b = putByte bh (fromIntegral (fromEnum b)) get bh = do x <- getWord8 bh; return $! (toEnum (fromIntegral x)) --- getF bh p = case getBitsF bh 1 p of (x,b) -> (toEnum x,b) instance Binary Char where put_ bh c = put_ bh (fromIntegral (ord c) :: Word32) get bh = do x <- get bh; return $! (chr (fromIntegral (x :: Word32))) --- getF bh p = case getBitsF bh 8 p of (x,b) -> (toEnum x,b) instance Binary Int where #if SIZEOF_HSINT == 4 @@ -418,7 +411,6 @@ instance Binary Int where #else #error "unsupported sizeof(HsInt)" #endif --- getF bh = getBitsF bh 32 instance Binary a => Binary [a] where put_ bh l = do