on master help sign in
Merge pull request #633 from kazu-yamamoto/ghc7.10-or-later

GHC 7.10 or later

commite470d8c48f940890eaf224fe6a5e0c303e03b7af authorMichael Snoyman <michael@snoyman.com> dateWed 26 Jul 2017, 14:39 (9 years ago) parent3eb03a44c9c78e
22 files changed+25−129
wai/Network/Wai/Internal.hs−3 wai/wai.cabal+2−3 warp-tls/Network/Wai/Handler/WarpTLS.hs−4 warp-tls/warp-tls.cabal+1−1 warp/Network/Wai/Handler/Warp/Conduit.hs−3 warp/Network/Wai/Handler/Warp/Counter.hs−3 warp/Network/Wai/Handler/Warp/Date.hs−3 warp/Network/Wai/Handler/Warp/FdCache.hs+2−5 warp/Network/Wai/Handler/Warp/HTTP2/Manager.hs+2−5 warp/Network/Wai/Handler/Warp/HTTP2/Receiver.hs+1−4 warp/Network/Wai/Handler/Warp/HTTP2/Request.hs+1−1 warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+1−4 warp/Network/Wai/Handler/Warp/HTTP2/Types.hs+2−5 warp/Network/Wai/Handler/Warp/HTTP2/Worker.hs+5−9 warp/Network/Wai/Handler/Warp/IORef.hs−26 warp/Network/Wai/Handler/Warp/MultiMap.hs−3 warp/Network/Wai/Handler/Warp/Recv.hs+1−4 warp/Network/Wai/Handler/Warp/Response.hs−19 warp/Network/Wai/Handler/Warp/Run.hs+1−10 warp/Network/Wai/Handler/Warp/Settings.hs−3 warp/Network/Wai/Handler/Warp/Timeout.hs+2−4 warp/warp.cabal+4−7
wai/Network/Wai/Internal.hs−3
@@ -9,9 +9,6 @@ module Network.Wai.Internal where
99
1010import Blaze.ByteString.Builder (Builder)
1111import qualified Data.ByteString as B hiding (pack)
12−#if __GLASGOW_HASKELL__ < 709
13−import Data.Functor ((<$>))
14−#endif
1512import Data.Text (Text)
1613import Data.Typeable (Typeable)
1714import Data.Vault.Lazy (Vault)
wai/wai.cabal+2−3
@@ -19,9 +19,8 @@ Source-repository head
1919 location: git://github.com/yesodweb/wai.git
2020
2121Library
22− Build-Depends: base >= 4 && < 5
22+ Build-Depends: base >= 4.8 && < 5
2323 , bytestring >= 0.10
24− , bytestring-builder >= 0.10.4.0 && < 0.11
2524 , blaze-builder >= 0.2.1.4 && < 0.5
2625 , network >= 2.2.1.5
2726 , http-types >= 0.7
@@ -38,7 +37,7 @@ test-suite test
3837 type: exitcode-stdio-1.0
3938 ghc-options: -threaded
4039 cpp-options: -DTEST
41− build-depends: base
40+ build-depends: base >= 4.8 && < 5
4241 , wai
4342 , hspec
4443 , blaze-builder
warp-tls/Network/Wai/Handler/WarpTLS.hs−4
@@ -4,7 +4,6 @@
44{-# LANGUAGE RecordWildCards #-}
55{-# LANGUAGE DeriveDataTypeable #-}
66{-# LANGUAGE PatternGuards #-}
7−{-# LANGUAGE CPP #-}
87
98-- | HTTP over TLS support for Warp via the TLS package.
109--
@@ -43,9 +42,6 @@ module Network.Wai.Handler.WarpTLS (
4342 , DH.generateParams
4443 ) where
4544
46−#if __GLASGOW_HASKELL__ < 709
47−import Control.Applicative ((<$>))
48−#endif
4945import Control.Applicative ((<|>))
5046import Control.Exception (Exception, throwIO, bracket, finally, handle, fromException, try, IOException, onException, SomeException(..))
5147import qualified Control.Exception as E
warp-tls/warp-tls.cabal+1−1
@@ -18,7 +18,7 @@ description: SSLv1 and SSLv2 are obsoleted by IETF.
1818extra-source-files: ChangeLog.md README.md
1919
2020Library
21− Build-Depends: base >= 4 && < 5
21+ Build-Depends: base >= 4.8 && < 5
2222 , bytestring >= 0.9
2323 , wai >= 3.2 && < 3.3
2424 , warp >= 3.2.10 && < 3.3
warp/Network/Wai/Handler/Warp/Conduit.hs−3
@@ -7,9 +7,6 @@ import Control.Monad (when, unless)
77import Data.ByteString (ByteString)
88import qualified Data.ByteString as S
99import qualified Data.IORef as I
10−#if __GLASGOW_HASKELL__ < 709
11−import Data.Word (Word)
12−#endif
1310import Data.Word (Word8)
1411import Network.Wai.Handler.Warp.Types
1512
warp/Network/Wai/Handler/Warp/Counter.hs−3
@@ -8,9 +8,6 @@ module Network.Wai.Handler.Warp.Counter (
88 , decrease
99 ) where
1010
11−#if __GLASGOW_HASKELL__ < 709
12−import Control.Applicative ((<$>))
13−#endif
1411import Control.Concurrent.STM
1512import Control.Monad (unless)
1613
warp/Network/Wai/Handler/Warp/Date.hs−3
@@ -5,9 +5,6 @@ module Network.Wai.Handler.Warp.Date (
55 , GMTDate
66 ) where
77
8−#if __GLASGOW_HASKELL__ < 709
9−import Control.Applicative
10−#endif
118import Control.AutoUpdate (defaultUpdateSettings, updateAction, mkAutoUpdate)
129import Data.ByteString.Char8
1310import Network.HTTP.Date
warp/Network/Wai/Handler/Warp/FdCache.hs+2−5
@@ -14,13 +14,10 @@ module Network.Wai.Handler.Warp.FdCache (
1414 ) where
1515
1616#ifndef WINDOWS
17−#if __GLASGOW_HASKELL__ < 709
18−import Control.Applicative ((<$>), (<*>))
19−#endif
2017import Control.Exception (bracket)
21−import Network.Wai.Handler.Warp.IORef
22−import Network.Wai.Handler.Warp.MultiMap
2318import Control.Reaper
19+import Data.IORef
20+import Network.Wai.Handler.Warp.MultiMap
2421import System.Posix.IO (openFd, OpenFileFlags(..), defaultFileFlags, OpenMode(ReadOnly), closeFd, FdOption(CloseOnExec), setFdOption)
2522#endif
2623import System.Posix.Types (Fd)
warp/Network/Wai/Handler/Warp/HTTP2/Manager.hs+2−5
@@ -13,16 +13,13 @@ module Network.Wai.Handler.Warp.HTTP2.Manager (
1313 , deleteMyId
1414 ) where
1515
16−#if __GLASGOW_HASKELL__ < 709
17−import Control.Applicative
18−#endif
1916import Control.Concurrent
2017import Control.Concurrent.STM
2118import Control.Monad (void)
19+import Data.Foldable
20+import Data.IORef
2221import Data.Set (Set)
2322import qualified Data.Set as Set
24−import Data.Foldable
25−import Network.Wai.Handler.Warp.IORef
2623import Network.Wai.Handler.Warp.Settings
2724import qualified Network.Wai.Handler.Warp.Timeout as T
2825
warp/Network/Wai/Handler/Warp/HTTP2/Receiver.hs+1−4
@@ -6,15 +6,13 @@
66
77module Network.Wai.Handler.Warp.HTTP2.Receiver (frameReceiver) where
88
9−#if __GLASGOW_HASKELL__ < 709
10−import Control.Applicative
11−#endif
129import Control.Concurrent
1310import Control.Concurrent.STM
1411import qualified Control.Exception as E
1512import Control.Monad (when, unless, void)
1613import Data.ByteString (ByteString)
1714import qualified Data.ByteString as BS
15+import Data.IORef
1816import Network.HPACK
1917import Network.HPACK.Token
2018import Network.HTTP2
@@ -23,7 +21,6 @@ import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
2321import Network.Wai.Handler.Warp.HTTP2.HPACK
2422import Network.Wai.Handler.Warp.HTTP2.Request
2523import Network.Wai.Handler.Warp.HTTP2.Types
26−import Network.Wai.Handler.Warp.IORef
2724import Network.Wai.Handler.Warp.ReadInt
2825import Network.Wai.Handler.Warp.Types
2926
warp/Network/Wai/Handler/Warp/HTTP2/Request.hs+1−1
@@ -13,6 +13,7 @@ import Control.Applicative ((<|>))
1313import Control.Arrow (first)
1414import Data.ByteString (ByteString)
1515import qualified Data.ByteString.Char8 as B8
16+import Data.IORef
1617import Data.Maybe (fromJust)
1718import qualified Data.Vault.Lazy as Vault
1819import Network.HPACK
@@ -22,7 +23,6 @@ import Network.Socket (SockAddr)
2223import Network.Wai
2324import Network.Wai.Handler.Warp.HTTP2.Types
2425import Network.Wai.Handler.Warp.HashMap (hashByteString)
25−import Network.Wai.Handler.Warp.IORef
2626import Network.Wai.Handler.Warp.Request (pauseTimeoutKey, getFileInfoKey)
2727import qualified Network.Wai.Handler.Warp.Settings as S (Settings, settingsNoParsePath)
2828import qualified Network.Wai.Handler.Warp.Timeout as Timeout
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+1−4
@@ -4,9 +4,6 @@
44
55module Network.Wai.Handler.Warp.HTTP2.Sender (frameSender) where
66
7−#if __GLASGOW_HASKELL__ < 709
8−import Control.Applicative
9−#endif
107import Control.Concurrent.STM
118import qualified Control.Exception as E
129import Control.Monad (void, when)
@@ -14,6 +11,7 @@ import Data.Bits
1411import qualified Data.ByteString as BS
1512import Data.ByteString.Builder (Builder)
1613import qualified Data.ByteString.Builder.Extra as B
14+import Data.IORef
1715import Data.Maybe (isNothing)
1816import Data.Word (Word8, Word32)
1917import Foreign.Ptr (Ptr, plusPtr)
@@ -27,7 +25,6 @@ import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
2725import Network.Wai.Handler.Warp.HTTP2.HPACK
2826import Network.Wai.Handler.Warp.HTTP2.Manager (Manager)
2927import Network.Wai.Handler.Warp.HTTP2.Types
30−import Network.Wai.Handler.Warp.IORef
3128import qualified Network.Wai.Handler.Warp.Settings as S
3229import Network.Wai.Handler.Warp.Types
3330
warp/Network/Wai/Handler/Warp/HTTP2/Types.hs+2−5
@@ -4,22 +4,19 @@
44
55module Network.Wai.Handler.Warp.HTTP2.Types where
66
7−import Data.ByteString.Builder (Builder)
8−#if __GLASGOW_HASKELL__ < 709
9−import Control.Applicative ((<$>),(<*>))
10−#endif
117import Control.Concurrent (forkIO)
128import Control.Concurrent.STM
139import Control.Exception (SomeException, bracket)
1410import Control.Monad (void, forM_)
1511import Data.ByteString (ByteString)
1612import qualified Data.ByteString as BS
13+import Data.ByteString.Builder (Builder)
14+import Data.IORef
1715import Data.IntMap.Strict (IntMap, IntMap)
1816import qualified Data.IntMap.Strict as M
1917import qualified Network.HTTP.Types as H
2018import Network.Wai (Request, FilePart)
2119import Network.Wai.Handler.Warp.HTTP2.Manager
22−import Network.Wai.Handler.Warp.IORef
2320import Network.Wai.Handler.Warp.Types
2421
2522import Network.HTTP2
warp/Network/Wai/Handler/Warp/HTTP2/Worker.hs+5−9
@@ -11,30 +11,26 @@ module Network.Wai.Handler.Warp.HTTP2.Worker (
1111 , worker
1212 ) where
1313
14−#if __GLASGOW_HASKELL__ < 709
15−import Control.Applicative
16−import Data.Monoid (mempty)
17−#endif
1814import Control.Applicative ((<|>))
19−import Data.Maybe (fromJust)
2015import Control.Concurrent.STM
2116import Control.Exception (SomeException(..), AsyncException(..))
2217import qualified Control.Exception as E
2318import Control.Monad (when)
2419import Data.ByteString.Builder (byteString)
20+import Data.IORef
21+import Data.Maybe (fromJust)
22+import Network.HPACK
23+import Network.HPACK.Token
2524import qualified Network.HTTP.Types as H
2625import Network.HTTP2
2726import Network.HTTP2.Priority
28−import Network.HPACK
29−import Network.HPACK.Token
3027import Network.Wai
3128import Network.Wai.Handler.Warp.FileInfoCache
3229import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
3330import Network.Wai.Handler.Warp.HTTP2.File
3431import Network.Wai.Handler.Warp.HTTP2.Manager
35−import Network.Wai.Handler.Warp.HTTP2.Types
3632import Network.Wai.Handler.Warp.HTTP2.Request
37−import Network.Wai.Handler.Warp.IORef
33+import Network.Wai.Handler.Warp.HTTP2.Types
3834import qualified Network.Wai.Handler.Warp.Response as R
3935import qualified Network.Wai.Handler.Warp.Settings as S
4036import qualified Network.Wai.Handler.Warp.Timeout as T
warp/Network/Wai/Handler/Warp/IORef.hsdeleted−26
@@ -1,26 +0,0 @@
1−{-# LANGUAGE CPP #-}
2−
3−#ifndef MIN_VERSION_base
4−#define MIN_VERSION_base(x,y,z) 1
5−#endif
6−
7−module Network.Wai.Handler.Warp.IORef (
8− module Data.IORef
9−#if !MIN_VERSION_base(4,6,0)
10− , atomicModifyIORef'
11−#endif
12− ) where
13−
14−import Data.IORef
15−
16−#if !MIN_VERSION_base(4,6,0)
17−-- | Strict version of 'atomicModifyIORef'. This forces both the value stored
18−-- in the 'IORef' as well as the value returned.
19−atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b
20−atomicModifyIORef' ref f = do
21− c <- atomicModifyIORef ref
22− (\x -> let (a, b) = f x -- Lazy application of "f"
23− in (a, a `seq` b)) -- Lazy application of "seq"
24− -- The following forces "a `seq` b", so it also forces "f x".
25− c `seq` return c
26−#endif
warp/Network/Wai/Handler/Warp/MultiMap.hs−3
@@ -13,9 +13,6 @@ module Network.Wai.Handler.Warp.MultiMap (
1313 , merge
1414 ) where
1515
16−#if __GLASGOW_HASKELL__ < 709
17−import Control.Applicative ((<$>))
18−#endif
1916import Data.IntMap.Strict (IntMap)
2017import qualified Data.IntMap.Strict as I
2118import qualified Network.Wai.Handler.Warp.Some as S
warp/Network/Wai/Handler/Warp/Recv.hs+1−4
@@ -9,12 +9,10 @@ module Network.Wai.Handler.Warp.Recv (
99 , spell
1010 ) where
1111
12−#if __GLASGOW_HASKELL__ < 709
13−import Control.Applicative ((<$>))
14−#endif
1512import qualified Control.Exception as E
1613import qualified Data.ByteString as BS
1714import Data.ByteString.Internal (ByteString(..))
15+import Data.IORef
1816import Data.Word (Word8)
1917import Foreign.C.Error (eAGAIN, getErrno, throwErrno)
2018import Foreign.C.Types
@@ -23,7 +21,6 @@ import Foreign.Ptr (Ptr, castPtr, plusPtr)
2321import GHC.Conc (threadWaitRead)
2422import Network.Socket (Socket, fdSocket)
2523import Network.Wai.Handler.Warp.Buffer
26−import Network.Wai.Handler.Warp.IORef
2724import Network.Wai.Handler.Warp.Types
2825import System.Posix.Types (Fd(..))
2926
warp/Network/Wai/Handler/Warp/Response.hs−19
@@ -14,14 +14,7 @@ module Network.Wai.Handler.Warp.Response (
1414 , addServer -- testing
1515 ) where
1616
17−#ifndef MIN_VERSION_base
18−#define MIN_VERSION_base(x,y,z) 1
19−#endif
20−
2117import Blaze.ByteString.Builder.HTTP (chunkedTransferEncoding, chunkedTransferTerminator)
22−#if __GLASGOW_HASKELL__ < 709
23−import Control.Applicative
24−#endif
2518import qualified Control.Exception as E
2619import Control.Monad (unless, when)
2720import Data.Array ((!))
@@ -34,14 +27,7 @@ import qualified Data.CaseInsensitive as CI
3427import Data.Function (on)
3528import Data.List (deleteBy)
3629import Data.Maybe
37−#if MIN_VERSION_base(4,5,0)
38−# if __GLASGOW_HASKELL__ < 709
39−import Data.Monoid (mempty)
40−# endif
4130import Data.Monoid ((<>))
42−#else
43−import Data.Monoid (mappend, mempty)
44−#endif
4531import Data.Streaming.Blaze (newBlazeRecv, reuseBufferStrategy)
4632import Data.Version (showVersion)
4733import Data.Word8 (_cr, _lf)
@@ -60,11 +46,6 @@ import Network.Wai.Handler.Warp.Types
6046import Network.Wai.Internal
6147import qualified Paths_warp
6248
63−#if !MIN_VERSION_base(4,5,0)
64−(<>) :: Monoid m => m -> m -> m
65−(<>) = mappend
66−#endif
67−
6849-- $setup
6950-- >>> :set -XOverloadedStrings
7051
warp/Network/Wai/Handler/Warp/Run.hs+1−10
@@ -9,9 +9,6 @@
99
1010module Network.Wai.Handler.Warp.Run where
1111
12−#if __GLASGOW_HASKELL__ < 709
13−import Control.Applicative ((<$>))
14−#endif
1512import Control.Arrow (first)
1613import qualified Control.Concurrent as Conc (yield)
1714import Control.Exception as E
@@ -20,7 +17,7 @@ import Data.ByteString (ByteString)
2017import qualified Data.ByteString as S
2118import Data.Char (chr)
2219import "iproute" Data.IP (toHostAddress, toHostAddress6)
23−import Data.IORef (IORef, newIORef, readIORef, writeIORef)
20+import Data.IORef (IORef, newIORef, readIORef, writeIORef, atomicModifyIORef')
2421import Data.Streaming.Network (bindPortTCP)
2522import Foreign.C.Error (Errno(..), eCONNABORTED)
2623import GHC.IO.Exception (IOException(..))
@@ -35,7 +32,6 @@ import qualified Network.Wai.Handler.Warp.FdCache as F
3532import qualified Network.Wai.Handler.Warp.FileInfoCache as I
3633import Network.Wai.Handler.Warp.HTTP2 (http2, isHTTP2)
3734import Network.Wai.Handler.Warp.Header
38−import Network.Wai.Handler.Warp.IORef
3935import Network.Wai.Handler.Warp.ReadInt
4036import Network.Wai.Handler.Warp.Recv
4137import Network.Wai.Handler.Warp.Request
@@ -72,11 +68,6 @@ socketConnection s = do
7268 , connBufferSize = bufferSize
7369 }
7470
75−#if __GLASGOW_HASKELL__ < 702
76−allowInterrupt :: IO ()
77−allowInterrupt = unblock $ return ()
78−#endif
79−
8071-- | Run an 'Application' on the given port.
8172-- This calls 'runSettings' with 'defaultSettings'.
8273run :: Port -> Application -> IO ()
warp/Network/Wai/Handler/Warp/Settings.hs−3
@@ -10,9 +10,6 @@ import Control.Monad (when, void)
1010import Data.ByteString (ByteString)
1111import qualified Data.ByteString.Char8 as S8
1212import Data.ByteString.Builder (byteString)
13−#if __GLASGOW_HASKELL__ < 709
14−import Data.Monoid (mappend)
15−#endif
1613import Data.Streaming.Network (HostPreference)
1714import qualified Data.Text as T
1815import qualified Data.Text.IO as TIO
warp/Network/Wai/Handler/Warp/Timeout.hs+2−4
@@ -27,8 +27,8 @@ import Control.Concurrent (myThreadId)
2727import qualified Control.Exception as E
2828import Control.Reaper
2929import Data.Typeable (Typeable)
30−import Network.Wai.Handler.Warp.IORef (IORef)
31−import qualified Network.Wai.Handler.Warp.IORef as I
30+import Data.IORef (IORef)
31+import qualified Data.IORef as I
3232
3333----------------------------------------------------------------
3434
@@ -112,10 +112,8 @@ registerKillThread m onTimeout = do
112112data TimeoutThread = TimeoutThread
113113 deriving Typeable
114114instance E.Exception TimeoutThread where
115−#if MIN_VERSION_base(4,7,0)
116115 toException = E.asyncExceptionToException
117116 fromException = E.asyncExceptionFromException
118−#endif
119117instance Show TimeoutThread where
120118 show TimeoutThread = "Thread killed by Warp's timeout reaper"
121119
warp/warp.cabal+4−7
@@ -33,13 +33,12 @@ Flag warp-debug
3333 Default: False
3434
3535Library
36− Build-Depends: base >= 3 && < 5
36+ Build-Depends: base >= 4.8 && < 5
3737 , array
3838 , async
3939 , auto-update >= 0.1.3 && < 0.2
4040 , blaze-builder >= 0.4
4141 , bytestring >= 0.9.1.4
42− , bytestring-builder
4342 , case-insensitive >= 0.2
4443 , containers
4544 , ghc-prim
@@ -83,7 +82,6 @@ Library
8382 Network.Wai.Handler.Warp.HTTP2.Worker
8483 Network.Wai.Handler.Warp.Header
8584 Network.Wai.Handler.Warp.IO
86− Network.Wai.Handler.Warp.IORef
8785 Network.Wai.Handler.Warp.PackInt
8886 Network.Wai.Handler.Warp.ReadInt
8987 Network.Wai.Handler.Warp.Recv
@@ -118,7 +116,7 @@ Test-Suite doctest
118116 HS-Source-Dirs: test
119117 Ghc-Options: -threaded -Wall
120118 Main-Is: doctests.hs
121− Build-Depends: base
119+ Build-Depends: base >= 4.8 && < 5
122120 , doctest >= 0.10.1
123121
124122Test-Suite spec
@@ -140,12 +138,11 @@ Test-Suite spec
140138 Type: exitcode-stdio-1.0
141139
142140 Ghc-Options: -Wall
143− Build-Depends: base >= 4 && < 5
141+ Build-Depends: base >= 4.8 && < 5
144142 , array
145143 , auto-update
146144 , blaze-builder >= 0.4
147145 , bytestring >= 0.9.1.4
148− , bytestring-builder
149146 , case-insensitive >= 0.2
150147 , ghc-prim
151148 , HTTP
@@ -185,7 +182,7 @@ Benchmark parser
185182 Type: exitcode-stdio-1.0
186183 Main-Is: Parser.hs
187184 HS-Source-Dirs: bench .
188− Build-Depends: base
185+ Build-Depends: base >= 4.8 && < 5
189186 , auto-update
190187 , bytestring
191188 , containers