Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/71feb1025eed0c3cc849c85e2b00e16bc1a21790 >--------------------------------------------------------------- commit 71feb1025eed0c3cc849c85e2b00e16bc1a21790 Author: Ian Lynagh <i...@well-typed.com> Date: Wed Jan 2 20:49:07 2013 +0000 Ship transformers with GHC This means that we can use the standard MonadIO class, rather than needing our own copy. >--------------------------------------------------------------- compiler/ghc.cabal.in | 3 ++- compiler/utils/MonadUtils.hs | 23 +---------------------- ghc.mk | 22 +++++++++++----------- ghc/GhciMonad.hs | 22 ++++++---------------- mk/validate-settings.mk | 1 + validate | 9 +++------ 6 files changed, 24 insertions(+), 56 deletions(-) diff --git a/compiler/ghc.cabal.in b/compiler/ghc.cabal.in index 44d0952..803989e 100644 --- a/compiler/ghc.cabal.in +++ b/compiler/ghc.cabal.in @@ -52,7 +52,8 @@ Library array >= 0.1 && < 0.5, filepath >= 1 && < 1.4, Cabal, - hpc + hpc, + transformers if flag(stage1) && impl(ghc < 7.5) Build-Depends: old-time >= 1 && < 1.2 diff --git a/compiler/utils/MonadUtils.hs b/compiler/utils/MonadUtils.hs index c697790..60748ea 100644 --- a/compiler/utils/MonadUtils.hs +++ b/compiler/utils/MonadUtils.hs @@ -24,36 +24,15 @@ module MonadUtils ) where ------------------------------------------------------------------------------- --- Detection of available libraries -------------------------------------------------------------------------------- - --- we don't depend on MTL for now -#define HAVE_MTL 0 - -------------------------------------------------------------------------------- -- Imports ------------------------------------------------------------------------------- import Maybes import Control.Applicative -#if HAVE_MTL -import Control.Monad.Trans -#endif import Control.Monad import Control.Monad.Fix - -------------------------------------------------------------------------------- --- MTL -------------------------------------------------------------------------------- - -#if !HAVE_MTL - -class Monad m => MonadIO m where - liftIO :: IO a -> m a - -instance MonadIO IO where liftIO = id -#endif +import Control.Monad.IO.Class ------------------------------------------------------------------------------- -- Lift combinators diff --git a/ghc.mk b/ghc.mk index f73c801..f4a7a61 100644 --- a/ghc.mk +++ b/ghc.mk @@ -330,7 +330,7 @@ endif # They do not say "this package will be built"; see $(PACKAGES_xx) for that # Packages that are built but not installed -PKGS_THAT_ARE_INTREE_ONLY := haskeline transformers terminfo xhtml +PKGS_THAT_ARE_INTREE_ONLY := haskeline terminfo xhtml PKGS_THAT_ARE_DPH := \ dph/dph-base \ @@ -355,7 +355,7 @@ PKGS_THAT_USE_TH := $(PKGS_THAT_ARE_DPH) # # We assume that the stage0 compiler has a suitable bytestring package, # so we don't have to include it below. -PKGS_THAT_BUILD_WITH_STAGE0 = Cabal/Cabal hpc binary bin-package-db hoopl +PKGS_THAT_BUILD_WITH_STAGE0 = Cabal/Cabal hpc binary bin-package-db hoopl transformers # $(EXTRA_PACKAGES) is another classification, of packages built but # not installed @@ -1337,17 +1337,17 @@ BINDIST_LIBRARY_FLAGS = --enable-library-vanilla --disable-shared endif BINDIST_LIBRARY_FLAGS += --disable-library-prof -.PHONY: validate_build_transformers -validate_build_transformers: - cd libraries/transformers && "$(BINDIST_PREFIX)/bin/ghc" --make Setup - cd libraries/transformers && ./Setup configure --with-ghc="$(BINDIST_PREFIX)/bin/ghc" $(BINDIST_HADDOCK_FLAG) $(BINDIST_LIBRARY_FLAGS) --global --builddir=dist-bindist --prefix="$(BINDIST_PREFIX)" - cd libraries/transformers && ./Setup build --builddir=dist-bindist +.PHONY: validate_build_xhtml +validate_build_xhtml: + cd libraries/xhtml && "$(BINDIST_PREFIX)/bin/ghc" --make Setup + cd libraries/xhtml && ./Setup configure --with-ghc="$(BINDIST_PREFIX)/bin/ghc" $(BINDIST_HADDOCK_FLAG) $(BINDIST_LIBRARY_FLAGS) --global --builddir=dist-bindist --prefix="$(BINDIST_PREFIX)" + cd libraries/xhtml && ./Setup build --builddir=dist-bindist ifeq "$(HADDOCK_DOCS)" "YES" - cd libraries/transformers && ./Setup haddock --builddir=dist-bindist + cd libraries/xhtml && ./Setup haddock --builddir=dist-bindist endif - cd libraries/transformers && ./Setup install --builddir=dist-bindist - cd libraries/transformers && ./Setup clean --builddir=dist-bindist - cd libraries/transformers && rm -f Setup Setup.exe Setup.hi Setup.o + cd libraries/xhtml && ./Setup install --builddir=dist-bindist + cd libraries/xhtml && ./Setup clean --builddir=dist-bindist + cd libraries/xhtml && rm -f Setup Setup.exe Setup.hi Setup.o # ----------------------------------------------------------------------------- # Numbered phase targets diff --git a/ghc/GhciMonad.hs b/ghc/GhciMonad.hs index 21c4e8d..2a6badb 100644 --- a/ghc/GhciMonad.hs +++ b/ghc/GhciMonad.hs @@ -37,7 +37,6 @@ import SrcLoc import Module import ObjLink import Linker -import qualified MonadUtils import Exception import Numeric @@ -47,13 +46,13 @@ import Data.IORef import System.CPUTime import System.Environment import System.IO -import Control.Monad as Monad +import Control.Monad import GHC.Exts import System.Console.Haskeline (CompletionFunc, InputT) import qualified System.Console.Haskeline as Haskeline -import Control.Monad.Trans.Class as Trans -import Control.Monad.IO.Class as Trans +import Control.Monad.Trans.Class +import Control.Monad.IO.Class ----------------------------------------------------------------------------- -- GHCi monad @@ -186,11 +185,8 @@ modifyGHCiState f = GHCi $ \r -> liftIO $ readIORef r >>= writeIORef r . f liftGhc :: Ghc a -> GHCi a liftGhc m = GHCi $ \_ -> m -instance MonadUtils.MonadIO GHCi where - liftIO = liftGhc . MonadUtils.liftIO - -instance Trans.MonadIO Ghc where - liftIO = MonadUtils.liftIO +instance MonadIO GHCi where + liftIO = liftGhc . liftIO instance HasDynFlags GHCi where getDynFlags = getSessionDynFlags @@ -206,9 +202,6 @@ instance GhcMonad (InputT GHCi) where setSession = lift . setSession getSession = lift getSession -instance MonadUtils.MonadIO (InputT GHCi) where - liftIO = Trans.liftIO - instance ExceptionMonad GHCi where gcatch m h = GHCi $ \r -> unGHCi m r `gcatch` (\e -> unGHCi (h e) r) gblock (GHCi m) = GHCi $ \r -> gblock (m r) @@ -220,9 +213,6 @@ instance ExceptionMonad GHCi where in unGHCi (f g_restore) s -instance MonadIO GHCi where - liftIO = MonadUtils.liftIO - instance Haskeline.MonadException Ghc where controlIO f = Ghc $ \s -> Haskeline.controlIO $ \(Haskeline.RunIO run) -> let run' = Haskeline.RunIO (fmap (Ghc . const) . run . flip unGhc s) @@ -259,7 +249,7 @@ printForUser :: GhcMonad m => SDoc -> m () printForUser doc = do unqual <- GHC.getPrintUnqual dflags <- getDynFlags - MonadUtils.liftIO $ Outputable.printForUser dflags stdout unqual doc + liftIO $ Outputable.printForUser dflags stdout unqual doc printForUserPartWay :: SDoc -> GHCi () printForUserPartWay doc = do diff --git a/mk/validate-settings.mk b/mk/validate-settings.mk index 58261c2..98e2340 100644 --- a/mk/validate-settings.mk +++ b/mk/validate-settings.mk @@ -113,6 +113,7 @@ libraries/mtl_dist-install_EXTRA_HC_OPTS += -Wwarn libraries/primitive_dist-install_EXTRA_HC_OPTS += -Wwarn # temporarily turn off -Werror for transformers +libraries/transformers_dist-boot_EXTRA_HC_OPTS += -Wwarn libraries/transformers_dist-install_EXTRA_HC_OPTS += -Wwarn # vector has some unused match warnings diff --git a/validate b/validate index 931c901..91616dc 100755 --- a/validate +++ b/validate @@ -106,16 +106,13 @@ if [ $speed != "FAST" ]; then $make test_bindist TEST_PREP=YES # - # Install the transformers package into the bindist, because it is - # used by some tests. - # It isn't essential that we do this (the failing tests will - # be treated as expected failures), but we get a bit more test - # coverage, and also verify that we can install a package into the + # Install the xhtml package into the bindist. + # This verifies that we can install a package into the # bindist with Cabal. # bindistdir="bindisttest/install dir" - $make validate_build_transformers BINDIST_PREFIX="$thisdir/$bindistdir" + $make validate_build_xhtml BINDIST_PREFIX="$thisdir/$bindistdir" fi fi # testsuite-only _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc