X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Futils%2FFastMutInt.lhs;h=1b2b05eb9f7e5a2d451d97be3bd6596afffb184f;hp=00aba34bbaf9fab4e08b430c1674e32a464a6901;hb=d436c70d43fb905c63220040168295e473f4b90a;hpb=526c3af1dc98987b6949f4df73c0debccf9875bd diff --git a/compiler/utils/FastMutInt.lhs b/compiler/utils/FastMutInt.lhs index 00aba34..1b2b05e 100644 --- a/compiler/utils/FastMutInt.lhs +++ b/compiler/utils/FastMutInt.lhs @@ -1,10 +1,14 @@ +\begin{code} {-# OPTIONS -cpp #-} +{-# OPTIONS_GHC -O #-} +-- We always optimise this, otherwise performance of a non-optimised +-- compiler is severely affected + -- -- (c) The University of Glasgow 2002-2006 -- -- Unboxed mutable Ints -\begin{code} module FastMutInt( FastMutInt, newFastMutInt, readFastMutInt, writeFastMutInt, @@ -21,9 +25,14 @@ module FastMutInt( #endif import GHC.Base -import GHC.IOBase import GHC.Ptr +#if __GLASGOW_HASKELL__ >= 611 +-- import GHC.IO ( IO(..) ) +#else +import GHC.IOBase ( IO(..) ) +#endif + #else /* ! __GLASGOW_HASKELL__ */ import Data.IORef @@ -46,7 +55,7 @@ data FastMutInt = FastMutInt (MutableByteArray# RealWorld) newFastMutInt = IO $ \s -> case newByteArray# size s of { (# s, arr #) -> (# s, FastMutInt arr #) } - where I# size = SIZEOF_HSINT + where !(I# size) = SIZEOF_HSINT readFastMutInt (FastMutInt arr) = IO $ \s -> case readIntArray# arr 0# s of { (# s, i #) -> @@ -61,7 +70,7 @@ data FastMutPtr = FastMutPtr (MutableByteArray# RealWorld) newFastMutPtr = IO $ \s -> case newByteArray# size s of { (# s, arr #) -> (# s, FastMutPtr arr #) } - where I# size = SIZEOF_VOID_P + where !(I# size) = SIZEOF_VOID_P readFastMutPtr (FastMutPtr arr) = IO $ \s -> case readAddrArray# arr 0# s of { (# s, i #) ->