From 233fc03532ce605ef15e6d79dde5d41a69c2f5dc Mon Sep 17 00:00:00 2001 From: Mikkel Christiansen Date: Wed, 26 Aug 2015 14:22:12 +0200 Subject: [PATCH 1/5] Ghc710 conditional import and remove unused toUpper. --- yesod/Yesod/Default/Config.hs | 2 +- yesod/Yesod/Default/Config2.hs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/yesod/Yesod/Default/Config.hs b/yesod/Yesod/Default/Config.hs index dba3889d..6e2dbf45 100644 --- a/yesod/Yesod/Default/Config.hs +++ b/yesod/Yesod/Default/Config.hs @@ -15,7 +15,7 @@ module Yesod.Default.Config , withYamlEnvironment ) where -import Data.Char (toUpper, toLower) +import Data.Char (toUpper) import Data.Text (Text) import qualified Data.Text as T import Data.Yaml diff --git a/yesod/Yesod/Default/Config2.hs b/yesod/Yesod/Default/Config2.hs index fed812b9..e477d216 100644 --- a/yesod/Yesod/Default/Config2.hs +++ b/yesod/Yesod/Default/Config2.hs @@ -20,7 +20,11 @@ module Yesod.Default.Config2 , requireCustomEnv ) where + +#if __GLASGOW_HASKELL__ < 710 +import Control.Applicative ((<$>)) import Data.Monoid +#endif import Data.Semigroup import Data.List.NonEmpty (nonEmpty) import Data.Aeson @@ -28,7 +32,6 @@ import qualified Data.HashMap.Strict as H import Data.Text (Text, pack) import System.Environment (getEnvironment, getArgs) import Control.Arrow ((***)) -import Control.Applicative ((<$>)) import Control.Monad (forM) import Control.Exception (throwIO) import Data.Text.Encoding (encodeUtf8) From a47ceec44506a77842146776e834d30ca3d1f9d7 Mon Sep 17 00:00:00 2001 From: Mikkel Christiansen Date: Wed, 26 Aug 2015 14:52:39 +0200 Subject: [PATCH 2/5] GHC 7.10 import warnings removed from yesod-core. --- yesod-core/Yesod/Core/Class/Handler.hs | 5 +++-- yesod-core/Yesod/Core/Content.hs | 3 ++- yesod-core/Yesod/Core/Dispatch.hs | 2 ++ yesod-core/Yesod/Core/Handler.hs | 11 ++++++++--- yesod-core/Yesod/Core/Internal/LiteApp.hs | 7 ++++--- yesod-core/Yesod/Core/Internal/Run.hs | 17 ++++++++++------- yesod-core/Yesod/Core/Types.hs | 6 ++++-- yesod-core/Yesod/Core/Unsafe.hs | 3 +++ yesod-core/Yesod/Routes/TH/RenderRoute.hs | 4 +++- 9 files changed, 39 insertions(+), 19 deletions(-) diff --git a/yesod-core/Yesod/Core/Class/Handler.hs b/yesod-core/Yesod/Core/Class/Handler.hs index a8b4504d..f525b3be 100644 --- a/yesod-core/Yesod/Core/Class/Handler.hs +++ b/yesod-core/Yesod/Core/Class/Handler.hs @@ -11,12 +11,13 @@ module Yesod.Core.Class.Handler ) where import Yesod.Core.Types -import Data.Monoid (mempty) import Control.Monad (liftM) import Control.Monad.IO.Class (liftIO) import Control.Monad.Trans.Resource (MonadResource, MonadResourceBase) import Control.Monad.Trans.Class (lift) -import Data.Monoid (Monoid) +#if __GLASGOW_HASKELL__ < 710 +import Data.Monoid (Monoid, mempty) +#endif import Data.Conduit.Internal (Pipe, ConduitM) import Control.Monad.Trans.Identity ( IdentityT) diff --git a/yesod-core/Yesod/Core/Content.hs b/yesod-core/Yesod/Core/Content.hs index a4f6b1b4..29df59d0 100644 --- a/yesod-core/Yesod/Core/Content.hs +++ b/yesod-core/Yesod/Core/Content.hs @@ -56,8 +56,9 @@ import qualified Data.Text as T import Control.Monad (liftM) import Blaze.ByteString.Builder (Builder, fromByteString, fromLazyByteString) +#if __GLASGOW_HASKELL__ < 710 import Data.Monoid (mempty) - +#endif import Text.Hamlet (Html) import Text.Blaze.Html.Renderer.Utf8 (renderHtmlBuilder) import Data.Conduit (Source, Flush (Chunk), ResumableSource, mapOutput) diff --git a/yesod-core/Yesod/Core/Dispatch.hs b/yesod-core/Yesod/Core/Dispatch.hs index 36f99c72..7df9437f 100644 --- a/yesod-core/Yesod/Core/Dispatch.hs +++ b/yesod-core/Yesod/Core/Dispatch.hs @@ -45,7 +45,9 @@ import qualified Network.Wai as W import Data.ByteString.Lazy.Char8 () import Data.Text (Text) +#if __GLASGOW_HASKELL__ < 710 import Data.Monoid (mappend) +#endif import qualified Data.ByteString as S import qualified Data.ByteString.Char8 as S8 import qualified Blaze.ByteString.Builder diff --git a/yesod-core/Yesod/Core/Handler.hs b/yesod-core/Yesod/Core/Handler.hs index e3e57d78..6ff08c64 100644 --- a/yesod-core/Yesod/Core/Handler.hs +++ b/yesod-core/Yesod/Core/Handler.hs @@ -178,7 +178,12 @@ import Data.Time (UTCTime, addUTCTime, import Yesod.Core.Internal.Request (langKey, mkFileInfoFile, mkFileInfoLBS, mkFileInfoSource) -import Control.Applicative ((<$>), (<|>)) + +#if __GLASGOW_HASKELL__ < 710 +import Control.Applicative ((<$>)) +import Data.Monoid (mempty, mappend) +#endif +import Control.Applicative ((<|>)) import Control.Exception (evaluate, SomeException) import Control.Exception.Lifted (handle) @@ -208,7 +213,7 @@ import Data.Byteable (constEqBytes) import Control.Arrow ((***)) import qualified Data.ByteString.Char8 as S8 -import Data.Monoid (Endo (..), mappend, mempty) +import Data.Monoid (Endo (..)) import Data.Text (Text) import qualified Network.Wai.Parse as NWP import Text.Shakespeare.I18N (RenderMessage (..)) @@ -1398,4 +1403,4 @@ validCsrf Nothing _param = True validCsrf (Just _token) Nothing = False csrfErrorMessage :: Text -csrfErrorMessage = "A valid CSRF token wasn't present in HTTP headers or POST parameters. Check the Yesod.Core.Handler docs of the yesod-core package for details on CSRF protection." \ No newline at end of file +csrfErrorMessage = "A valid CSRF token wasn't present in HTTP headers or POST parameters. Check the Yesod.Core.Handler docs of the yesod-core package for details on CSRF protection." diff --git a/yesod-core/Yesod/Core/Internal/LiteApp.hs b/yesod-core/Yesod/Core/Internal/LiteApp.hs index 790f09a8..b09217c6 100644 --- a/yesod-core/Yesod/Core/Internal/LiteApp.hs +++ b/yesod-core/Yesod/Core/Internal/LiteApp.hs @@ -1,9 +1,10 @@ -{-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE PatternGuards #-} +{-# LANGUAGE TypeFamilies, PatternGuards, CPP #-} module Yesod.Core.Internal.LiteApp where -import Yesod.Routes.Class +#if __GLASGOW_HASKELL__ < 710 import Data.Monoid +#endif +import Yesod.Routes.Class import Yesod.Core.Class.Yesod import Yesod.Core.Class.Dispatch import Yesod.Core.Types diff --git a/yesod-core/Yesod/Core/Internal/Run.hs b/yesod-core/Yesod/Core/Internal/Run.hs index 6725fa3b..7b09a11d 100644 --- a/yesod-core/Yesod/Core/Internal/Run.hs +++ b/yesod-core/Yesod/Core/Internal/Run.hs @@ -7,9 +7,13 @@ {-# LANGUAGE FlexibleContexts #-} module Yesod.Core.Internal.Run where + +#if __GLASGOW_HASKELL__ < 710 +import Control.Applicative ((<$>)) +import Data.Monoid (mempty) +#endif import Yesod.Core.Internal.Response import Blaze.ByteString.Builder (toByteString) -import Control.Applicative ((<$>)) import Control.Exception (fromException, evaluate) import qualified Control.Exception as E import Control.Exception.Lifted (catch) @@ -25,7 +29,7 @@ import qualified Data.IORef as I import qualified Data.Map as Map import Data.Maybe (isJust) import Data.Maybe (fromMaybe) -import Data.Monoid (appEndo, mempty) +import Data.Monoid (appEndo) import Data.Text (Text) import qualified Data.Text as T import Data.Text.Encoding (encodeUtf8) @@ -40,7 +44,6 @@ import Network.Wai.Internal import Prelude hiding (catch) #endif import System.Log.FastLogger (LogStr, toLogStr) -import System.Random (newStdGen) import Yesod.Core.Content import Yesod.Core.Class.Yesod import Yesod.Core.Types @@ -48,9 +51,9 @@ import Yesod.Core.Internal.Request (parseWaiRequest, tooLargeResponse) import Yesod.Core.Internal.Util (formatRFC1123) import Yesod.Routes.Class (Route, renderRoute) -import Control.DeepSeq (($!!), NFData) -import Control.Monad (liftM) -import Control.AutoUpdate (mkAutoUpdate, defaultUpdateSettings, updateAction, updateFreq) +import Control.DeepSeq (($!!)) +import Control.Monad (liftM) +import Control.AutoUpdate (mkAutoUpdate, defaultUpdateSettings, updateAction, updateFreq) returnDeepSessionMap :: Monad m => SessionMap -> m SessionMap #if MIN_VERSION_bytestring(0, 10, 0) @@ -263,7 +266,7 @@ yesodRunner handler' YesodRunnerEnv {..} route req sendResponse let mkYesodReq = parseWaiRequest req session (isJust yreSessionBackend) mmaxLen let yreq = case mkYesodReq of - Left yreq -> yreq + Left yreq' -> yreq' Right needGen -> needGen yreGen let ra = resolveApproot yreSite req let log' = messageLoggerSource yreSite yreLogger diff --git a/yesod-core/Yesod/Core/Types.hs b/yesod-core/Yesod/Core/Types.hs index 2c39f90d..99e48267 100644 --- a/yesod-core/Yesod/Core/Types.hs +++ b/yesod-core/Yesod/Core/Types.hs @@ -10,8 +10,11 @@ module Yesod.Core.Types where import qualified Blaze.ByteString.Builder as BBuilder import qualified Blaze.ByteString.Builder.Char.Utf8 +#if __GLASGOW_HASKELL__ < 710 import Control.Applicative (Applicative (..)) import Control.Applicative ((<$>)) +import Data.Monoid (Monoid (..)) +#endif import Control.Arrow (first) import Control.Exception (Exception) import Control.Monad (liftM, ap) @@ -29,8 +32,7 @@ import Data.Conduit (Flush, Source) import Data.IORef (IORef) import Data.Map (Map, unionWith) import qualified Data.Map as Map -import Data.Monoid (Endo (..), Last (..), - Monoid (..)) +import Data.Monoid (Endo (..), Last (..)) import Data.Serialize (Serialize (..), putByteString) import Data.String (IsString (fromString)) diff --git a/yesod-core/Yesod/Core/Unsafe.hs b/yesod-core/Yesod/Core/Unsafe.hs index 9d6d04de..ea15e7b3 100644 --- a/yesod-core/Yesod/Core/Unsafe.hs +++ b/yesod-core/Yesod/Core/Unsafe.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} -- | This is designed to be used as -- -- > qualified import Yesod.Core.Unsafe as Unsafe @@ -9,7 +10,9 @@ import Yesod.Core.Internal.Run (runFakeHandler) import Yesod.Core.Types import Yesod.Core.Class.Yesod +#if __GLASGOW_HASKELL__ < 710 import Data.Monoid (mempty, mappend) +#endif import Control.Monad.IO.Class (MonadIO) -- | designed to be used as diff --git a/yesod-core/Yesod/Routes/TH/RenderRoute.hs b/yesod-core/Yesod/Routes/TH/RenderRoute.hs index 1d715720..4b513f8c 100644 --- a/yesod-core/Yesod/Routes/TH/RenderRoute.hs +++ b/yesod-core/Yesod/Routes/TH/RenderRoute.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE TemplateHaskell, CPP #-} module Yesod.Routes.TH.RenderRoute ( -- ** RenderRoute mkRenderRouteInstance @@ -14,7 +14,9 @@ import Control.Monad (replicateM) import Data.Text (pack) import Web.PathPieces (PathPiece (..), PathMultiPiece (..)) import Yesod.Routes.Class +#if __GLASGOW_HASKELL__ < 710 import Data.Monoid (mconcat) +#endif -- | Generate the constructors of a route data type. mkRouteCons :: [ResourceTree Type] -> ([Con], [Dec]) From 04cb3730a06c01be8c513dd756aee98704daff65 Mon Sep 17 00:00:00 2001 From: Mikkel Christiansen Date: Wed, 26 Aug 2015 15:03:14 +0200 Subject: [PATCH 3/5] Replace deprecated breakByte function. --- yesod-core/Yesod/Core/Content.hs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/yesod-core/Yesod/Core/Content.hs b/yesod-core/Yesod/Core/Content.hs index 29df59d0..a0f511d3 100644 --- a/yesod-core/Yesod/Core/Content.hs +++ b/yesod-core/Yesod/Core/Content.hs @@ -77,6 +77,7 @@ import Data.Text.Lazy.Builder (toLazyText) import Yesod.Core.Types import Text.Lucius (Css, renderCss) import Text.Julius (Javascript, unJavascript) +import Data.Word8 (_semicolon, _slash) -- | Zero-length enumerator. emptyContent :: Content @@ -225,18 +226,15 @@ typeOctet = "application/octet-stream" -- For example, \"text/html; charset=utf-8\" is commonly used to specify the -- character encoding for HTML data. This function would return \"text/html\". simpleContentType :: ContentType -> ContentType -simpleContentType = fst . B.breakByte 59 -- 59 == ; +simpleContentType = fst . B.break (== _semicolon) -- Give just the media types as a pair. -- For example, \"text/html; charset=utf-8\" returns ("text", "html") contentTypeTypes :: ContentType -> (B.ByteString, B.ByteString) -contentTypeTypes ct = (main, fst $ B.breakByte semicolon (tailEmpty sub)) +contentTypeTypes ct = (main, fst $ B.break (== _semicolon) (tailEmpty sub)) where tailEmpty x = if B.null x then "" else B.tail x - (main, sub) = B.breakByte slash ct - slash = 47 - semicolon = 59 - + (main, sub) = B.break (== _slash) ct instance HasContentType a => HasContentType (DontFullyEvaluate a) where getContentType = getContentType . liftM unDontFullyEvaluate From d556fc8844de35aa34ae7945e42a0576185ae887 Mon Sep 17 00:00:00 2001 From: Mikkel Christiansen Date: Wed, 26 Aug 2015 15:26:35 +0200 Subject: [PATCH 4/5] Replace deprecated Connection type. --- yesod-persistent/Yesod/Persist/Core.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yesod-persistent/Yesod/Persist/Core.hs b/yesod-persistent/Yesod/Persist/Core.hs index b40cd72a..c5667073 100644 --- a/yesod-persistent/Yesod/Persist/Core.hs +++ b/yesod-persistent/Yesod/Persist/Core.hs @@ -81,7 +81,7 @@ newtype DBRunner site = DBRunner -- -- Since 1.2.0 defaultGetDBRunner :: YesodPersistBackend site ~ SQL.SqlBackend - => (site -> Pool SQL.Connection) + => (site -> Pool SQL.SqlBackend) -> HandlerT site IO (DBRunner site, HandlerT site IO ()) defaultGetDBRunner getPool = do pool <- fmap getPool getYesod From 25bbda20878e4148b0dde671831906faa86d5156 Mon Sep 17 00:00:00 2001 From: Mikkel Christiansen Date: Wed, 26 Aug 2015 16:10:56 +0200 Subject: [PATCH 5/5] Remove unused applicative. --- yesod-core/Yesod/Core/Internal/Run.hs | 1 - 1 file changed, 1 deletion(-) diff --git a/yesod-core/Yesod/Core/Internal/Run.hs b/yesod-core/Yesod/Core/Internal/Run.hs index 7b09a11d..d051dd49 100644 --- a/yesod-core/Yesod/Core/Internal/Run.hs +++ b/yesod-core/Yesod/Core/Internal/Run.hs @@ -9,7 +9,6 @@ module Yesod.Core.Internal.Run where #if __GLASGOW_HASKELL__ < 710 -import Control.Applicative ((<$>)) import Data.Monoid (mempty) #endif import Yesod.Core.Internal.Response