X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FUniqSupply.lhs;h=c228eeb5708740740059a5850a1d3383c8d5f2d2;hb=3ad311341e189e574139921bd98449d7aed9ba26;hp=8dcf595da004124b75fbee654b2b0da9c2aede9a;hpb=3a42f21026077b8b497852ff53288818a28883d2;p=ghc-hetmet.git diff --git a/compiler/basicTypes/UniqSupply.lhs b/compiler/basicTypes/UniqSupply.lhs index 8dcf595..c228eeb 100644 --- a/compiler/basicTypes/UniqSupply.lhs +++ b/compiler/basicTypes/UniqSupply.lhs @@ -4,6 +4,13 @@ % \begin{code} +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details + module UniqSupply ( UniqSupply, -- Abstractly @@ -28,6 +35,13 @@ import Unique import GHC.Exts import System.IO.Unsafe ( unsafeInterleaveIO ) +#if __GLASGOW_HASKELL__ >= 607 +import GHC.IOBase (unsafeDupableInterleaveIO) +#else +unsafeDupableInterleaveIO :: IO a -> IO a +unsafeDupableInterleaveIO = unsafeInterleaveIO +#endif + w2i x = word2Int# x i2w x = int2Word# x i2w_s x = (x :: Int#) @@ -69,7 +83,7 @@ mkSplitUniqSupply (C# c#) -- This is one of the most hammered bits in the whole compiler mk_supply# - = unsafeInterleaveIO ( + = unsafeDupableInterleaveIO ( genSymZh >>= \ (I# u#) -> mk_supply# >>= \ s1 -> mk_supply# >>= \ s2 ->