Add ghc-prim as dependency to ghc-bin
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Wed, 27 Jun 2018 10:04:47 +0000 (13:04 +0300)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>
Wed, 27 Jun 2018 10:04:58 +0000 (13:04 +0300)
Remove unsafeCoerce introduced by a54c94f08b

Reviewers: simonmar, bgamari

Reviewed By: simonmar

Subscribers: rwbarton, thomie, carter

Differential Revision: https://phabricator.haskell.org/D4901

ghc/GHCi/Leak.hs
ghc/ghc-bin.cabal.in

index 6d1bc58..aec1ab5 100644 (file)
@@ -10,15 +10,15 @@ import Data.Bits
 import DynFlags (settings, sTargetPlatform)
 import Foreign.Ptr (ptrToIntPtr, intPtrToPtr)
 import GHC
-import GHC.Exts (anyToAddr#, State#, RealWorld)
+import GHC.Exts (anyToAddr#)
 import GHC.Ptr (Ptr (..))
+import GHC.Types (IO (..))
 import HscTypes
 import Outputable
 import Platform (target32Bit)
 import System.Mem
 import System.Mem.Weak
 import UniqDFM
-import Unsafe.Coerce (unsafeCoerce)
 
 -- Checking for space leaks in GHCi. See #15111, and the
 -- -fghci-leak-check flag.
@@ -63,15 +63,11 @@ checkLeakIndicators dflags (LeakIndicators leakmods)  = do
   report :: String -> Maybe a -> IO ()
   report _ Nothing = return ()
   report msg (Just a) = do
-    addr <- mkIO (\s -> case anyToAddr# a s of
-                          (# s', addr #) -> (# s', Ptr addr #)) :: IO (Ptr ())
+    addr <- IO (\s -> case anyToAddr# a s of
+                        (# s', addr #) -> (# s', Ptr addr #)) :: IO (Ptr ())
     putStrLn ("-fghci-leak-check: " ++ msg ++ " is still alive at " ++
               show (maskTagBits addr))
 
-  -- We don't have access to ghc-prim here so using `unsafeCoerce` for `IO`
-  mkIO :: (State# RealWorld -> (# State# RealWorld, a #)) -> IO a
-  mkIO = unsafeCoerce
-
   tagBits
     | target32Bit (sTargetPlatform (settings dflags)) = 2
     | otherwise = 3
index d3cc402..85a9250 100644 (file)
@@ -54,6 +54,7 @@ Executable ghc
         Build-depends:
             containers     >= 0.5 && < 0.7,
             deepseq        == 1.4.*,
+            ghc-prim       == 0.5.*,
             ghci           == @ProjectVersionMunged@,
             haskeline      == 0.7.*,
             time           == 1.8.*,