+\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,
#ifdef __GLASGOW_HASKELL__
-#include "MachDeps.h"
+#include "../includes/MachDeps.h"
#ifndef SIZEOF_HSINT
#define SIZEOF_HSINT INT_SIZE_IN_BYTES
#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
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 #) ->
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 #) ->