diff options
author | Ömer Sinan Ağacan <omeragacan@gmail.com> | 2018-06-27 13:04:47 +0300 |
---|---|---|
committer | Ömer Sinan Ağacan <omeragacan@gmail.com> | 2018-06-27 13:04:58 +0300 |
commit | 437ff69e2f4d53f2ca6d0a07f86276fd53c27ef4 (patch) | |
tree | c168bbd7fcda6a0223b903b9ba2667e8b4364dcb /ghc | |
parent | a54c94f08b938c02cbaf003e23a7ef3352eee19a (diff) | |
download | haskell-437ff69e2f4d53f2ca6d0a07f86276fd53c27ef4.tar.gz |
Add ghc-prim as dependency to ghc-bin
Remove unsafeCoerce introduced by a54c94f08b
Reviewers: simonmar, bgamari
Reviewed By: simonmar
Subscribers: rwbarton, thomie, carter
Differential Revision: https://phabricator.haskell.org/D4901
Diffstat (limited to 'ghc')
-rw-r--r-- | ghc/GHCi/Leak.hs | 12 | ||||
-rw-r--r-- | ghc/ghc-bin.cabal.in | 1 |
2 files changed, 5 insertions, 8 deletions
diff --git a/ghc/GHCi/Leak.hs b/ghc/GHCi/Leak.hs index 6d1bc58265..aec1ab544e 100644 --- a/ghc/GHCi/Leak.hs +++ b/ghc/GHCi/Leak.hs @@ -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 diff --git a/ghc/ghc-bin.cabal.in b/ghc/ghc-bin.cabal.in index d3cc40235d..85a92501d2 100644 --- a/ghc/ghc-bin.cabal.in +++ b/ghc/ghc-bin.cabal.in @@ -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.*, |