Hi all, when bootstrapping with GHC-7.7 I get HC [stage 0] libraries/binary/dist-boot/build/Data/Binary/Get.o libraries/binary/src/Data/Binary/Get.hs:101:1: Warning: The import of `GHC.Int' is redundant except perhaps to import instances from `GHC.Int' To import instances alone, use: import GHC.Int() libraries/binary/src/Data/Binary/Get.hs:371:15: Warning: In the use of `unsafeInterleaveST' (imported from Control.Monad.ST): Deprecated: "Please import from Control.Monad.ST.Unsafe instead; This will be removed in the next release" libraries/binary/src/Data/Binary/Get.hs:383:44: Warning: In the use of `unsafeInterleaveST' (imported from Control.Monad.ST): Deprecated: "Please import from Control.Monad.ST.Unsafe instead; This will be removed in the next release" HC [stage 0] libraries/binary/dist-boot/build/Data/Binary/Builder/Base.o libraries/binary/src/Data/Binary/Builder/Base.hs:180:22: Ambiguous occurrence `unsafePerformIO' It could refer to either `Foreign.unsafePerformIO', imported from `Foreign' at libraries/binary/src/Data/Binary/Builder/Base.hs:69:1-14 or `System.IO.Unsafe.unsafePerformIO', imported from `System.IO.Unsafe' at libraries/binary/src/Data/Binary/Builder/Base.hs:71:1-23 (and originally defined in `GHC.IO') make[1]: *** [libraries/binary/dist-boot/build/Data/Binary/Builder/Base.o] Error 1 I have two commits to fix this: $ git show ded894cd6abb209406e2ce16361acbb7111774d0 commit ded894cd6abb209406e2ce16361acbb7111774d0 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Oct 25 12:59:53 2012 +0200 fix import warnings diff --git a/src/Data/Binary/Get.hs b/src/Data/Binary/Get.hs index 7134217..eaba669 100644 --- a/src/Data/Binary/Get.hs +++ b/src/Data/Binary/Get.hs @@ -92,13 +92,13 @@ import Control.Applicative (Applicative(..)) import Foreign -- used by splitAtST -import Control.Monad.ST +import Control.Monad.ST (ST, runST) +import Control.Monad.ST.Unsafe (unsafeInterleaveST) import Data.STRef #if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__) import GHC.Base import GHC.Word -import GHC.Int #endif -- | The parse state $ git show 9c8b00ab88b6b8b996e0725d242df9a225d4236e commit 9c8b00ab88b6b8b996e0725d242df9a225d4236e Author: Gabor Greif <ggreif@gmail.com> Date: Thu Oct 25 13:39:28 2012 +0200 do not import unsafePerformIO from Foreign (eliminating warning) diff --git a/src/Data/Binary/Builder/Base.hs b/src/Data/Binary/Builder/Base.hs index 8124f65..31b5115 100644 --- a/src/Data/Binary/Builder/Base.hs +++ b/src/Data/Binary/Builder/Base.hs @@ -67,6 +67,7 @@ import qualified Data.ByteString.Lazy as L import Data.Monoid import Data.Word import Foreign +import System.IO.Unsafe (unsafePerformIO) #ifdef BYTESTRING_IN_BASE import Data.ByteString.Base (inlinePerformIO) @@ -174,7 +175,7 @@ data Buffer = Buffer {-# UNPACK #-} !(ForeignPtr Word8) -- the lazy 'L.ByteString' is demanded. -- toLazyByteString :: Builder -> L.ByteString -toLazyByteString m = unsafePerformIO $ do +toLazyByteString m = System.IO.Unsafe.unsafePerformIO $ do buf <- newBuffer defaultSize runBuilder (m `append` flush) (const (return L.Empty)) buf {-# INLINE toLazyByteString #-} Okay to push to master? Cheers, Gabor