parconc-examples 0.3.5 → 0.4
raw patch · 7 files changed
+457/−96 lines, 7 filesdep +network-uridep ~acceleratedep ~networkdep ~randomnew-component:exe:miscmodules
Dependencies added: network-uri
Dependency ranges changed: accelerate, network, random, utf8-string, vector
Files
- ChangeLog.md +9/−0
- TMVar.hs +49/−0
- WindowManager.hs +74/−0
- dist/build/parinfer/parinfer-tmp/Lex.hs +151/−16
- fwaccel.hs +1/−1
- miscmodules.hs +6/−0
- parconc-examples.cabal +167/−79
+ ChangeLog.md view
@@ -0,0 +1,9 @@+# Version 0.4++* Add `stack.yaml`, builds using LTS 4.2 (GHC 7.10.3)+* Various upper bound updates,including `network-2.6`+* Add `README.md`, with build instructions for Stack and Cabal+* Fix `.cabal` problems found by stack+* Build `tmvar.hs`, `windowman.hs` by importing them into a dummy `Main`+ module in `miscmodules.hs`.+* Removed generated `Parse.hs` and `Lex.hs`
+ TMVar.hs view
@@ -0,0 +1,49 @@+module TMVar where++import Control.Concurrent.STM hiding (TMVar, takeTMVar)++-- <<TMVar+newtype TMVar a = TMVar (TVar (Maybe a))+-- >>++newTMVar :: a -> STM (TMVar a)+newTMVar a = do+ t <- newTVar (Just a)+ return (TMVar t)++-- <<newEmptyTMVar+newEmptyTMVar :: STM (TMVar a)+newEmptyTMVar = do+ t <- newTVar Nothing+ return (TMVar t)+-- >>++-- <<takeTMVar+takeTMVar :: TMVar a -> STM a+takeTMVar (TMVar t) = do+ m <- readTVar t -- <1>+ case m of+ Nothing -> retry -- <2>+ Just a -> do+ writeTVar t Nothing -- <3>+ return a+-- >>++-- <<putTMVar+putTMVar :: TMVar a -> a -> STM ()+putTMVar (TMVar t) a = do+ m <- readTVar t+ case m of+ Nothing -> do+ writeTVar t (Just a)+ return ()+ Just _ -> retry+-- >>++-- <<takeEitherTMVar+takeEitherTMVar :: TMVar a -> TMVar b -> STM (Either a b)+takeEitherTMVar ma mb =+ fmap Left (takeTMVar ma)+ `orElse`+ fmap Right (takeTMVar mb)+-- >>
+ WindowManager.hs view
@@ -0,0 +1,74 @@+module WindowManager where++import Control.Concurrent.STM+import Data.Map as Map+import Data.Set as Set+import Data.Maybe++data Window+instance Eq Window+instance Ord Window++data Desktop+instance Eq Desktop+instance Ord Desktop++type Display = Map Desktop (TVar (Set Window))++-- <<moveWindowSTM+moveWindowSTM :: Display -> Window -> Desktop -> Desktop -> STM ()+moveWindowSTM disp win a b = do+ wa <- readTVar ma+ wb <- readTVar mb+ writeTVar ma (Set.delete win wa)+ writeTVar mb (Set.insert win wb)+ where+ ma = disp ! a+ mb = disp ! b+-- >>++-- <<moveWindow+moveWindow :: Display -> Window -> Desktop -> Desktop -> IO ()+moveWindow disp win a b = atomically $ moveWindowSTM disp win a b+-- >>++-- <<swapWindows+swapWindows :: Display+ -> Window -> Desktop+ -> Window -> Desktop+ -> IO ()+swapWindows disp w a v b = atomically $ do+ moveWindowSTM disp w a b+ moveWindowSTM disp v b a+-- >>++render :: Set Window -> IO ()+render = undefined++-- <<UserFocus+type UserFocus = TVar Desktop+-- >>++-- <<getWindows+getWindows :: Display -> UserFocus -> STM (Set Window)+getWindows disp focus = do+ desktop <- readTVar focus+ readTVar (disp ! desktop)+-- >>++-- <<renderThread+renderThread :: Display -> UserFocus -> IO ()+renderThread disp focus = do+ wins <- atomically $ getWindows disp focus -- <1>+ loop wins -- <2>+ where+ loop wins = do -- <3>+ render wins -- <4>+ next <- atomically $ do+ wins' <- getWindows disp focus -- <5>+ if (wins == wins') -- <6>+ then retry -- <7>+ else return wins' -- <8>+ loop next+-- >>+
dist/build/parinfer/parinfer-tmp/Lex.hs view
@@ -25,6 +25,72 @@ {-# LINE 1 "templates/wrappers.hs" #-} {-# LINE 1 "<built-in>" #-} {-# LINE 1 "<command-line>" #-}+{-# LINE 9 "<command-line>" #-}+# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4+++++++++++++++++++++++++++++++++++++++++++{-# LINE 9 "<command-line>" #-}+{-# LINE 1 "/home/smarlow/local/lib/ghc-7.10.1/include/ghcversion.h" #-}++++++++++++++++++{-# LINE 9 "<command-line>" #-} {-# LINE 1 "templates/wrappers.hs" #-} -- ----------------------------------------------------------------------------- -- Alex wrapper code.@@ -32,8 +98,9 @@ -- This code is in the PUBLIC DOMAIN; you may copy it freely and use -- it for any purpose whatsoever. +import Control.Applicative (Applicative (..)) import Data.Word (Word8)-{-# LINE 22 "templates/wrappers.hs" #-}+{-# LINE 23 "templates/wrappers.hs" #-} import qualified Data.Bits @@ -65,13 +132,13 @@ -- ----------------------------------------------------------------------------- -- The input type -{-# LINE 72 "templates/wrappers.hs" #-}+{-# LINE 73 "templates/wrappers.hs" #-} -{-# LINE 89 "templates/wrappers.hs" #-}+{-# LINE 93 "templates/wrappers.hs" #-} -{-# LINE 103 "templates/wrappers.hs" #-}+{-# LINE 107 "templates/wrappers.hs" #-} -{-# LINE 118 "templates/wrappers.hs" #-}+{-# LINE 122 "templates/wrappers.hs" #-} -- ----------------------------------------------------------------------------- -- Token positions@@ -83,18 +150,18 @@ -- `move_pos' calculates the new position after traversing a given character, -- assuming the usual eight character tab stops. -{-# LINE 141 "templates/wrappers.hs" #-}+{-# LINE 145 "templates/wrappers.hs" #-} -- ----------------------------------------------------------------------------- -- Default monad -{-# LINE 239 "templates/wrappers.hs" #-}+{-# LINE 256 "templates/wrappers.hs" #-} -- ----------------------------------------------------------------------------- -- Monad (with ByteString input) -{-# LINE 328 "templates/wrappers.hs" #-}+{-# LINE 347 "templates/wrappers.hs" #-} -- -----------------------------------------------------------------------------@@ -127,9 +194,9 @@ -- ----------------------------------------------------------------------------- -- Basic wrapper, ByteString version -{-# LINE 373 "templates/wrappers.hs" #-}+{-# LINE 392 "templates/wrappers.hs" #-} -{-# LINE 386 "templates/wrappers.hs" #-}+{-# LINE 406 "templates/wrappers.hs" #-} -- -----------------------------------------------------------------------------@@ -137,13 +204,13 @@ -- Adds text positions to the basic model. -{-# LINE 403 "templates/wrappers.hs" #-}+{-# LINE 423 "templates/wrappers.hs" #-} -- ----------------------------------------------------------------------------- -- Posn wrapper, ByteString version -{-# LINE 418 "templates/wrappers.hs" #-}+{-# LINE 438 "templates/wrappers.hs" #-} -- -----------------------------------------------------------------------------@@ -188,6 +255,72 @@ {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "<built-in>" #-} {-# LINE 1 "<command-line>" #-}+{-# LINE 10 "<command-line>" #-}+# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4+++++++++++++++++++++++++++++++++++++++++++{-# LINE 10 "<command-line>" #-}+{-# LINE 1 "/home/smarlow/local/lib/ghc-7.10.1/include/ghcversion.h" #-}++++++++++++++++++{-# LINE 10 "<command-line>" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} -- ----------------------------------------------------------------------------- -- ALEX TEMPLATE@@ -204,6 +337,7 @@ +-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex. #if __GLASGOW_HASKELL__ > 706 #define GTE(n,m) (tagToEnum# (n >=# m)) #define EQ(n,m) (tagToEnum# (n ==# m))@@ -211,11 +345,11 @@ #define GTE(n,m) (n >=# m) #define EQ(n,m) (n ==# m) #endif-{-# LINE 50 "templates/GenericTemplate.hs" #-}+{-# LINE 51 "templates/GenericTemplate.hs" #-} data AlexAddr = AlexA# Addr#-+-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex. #if __GLASGOW_HASKELL__ < 503 uncheckedShiftL# = shiftL# #endif@@ -258,6 +392,7 @@ + #if __GLASGOW_HASKELL__ < 503 quickIndex arr i = arr ! i #else@@ -346,7 +481,7 @@ check_accs (AlexAccNone) = last_acc check_accs (AlexAcc a ) = AlexLastAcc a input (I# (len)) check_accs (AlexAccSkip) = AlexLastSkip input (I# (len))-{-# LINE 196 "templates/GenericTemplate.hs" #-}+{-# LINE 198 "templates/GenericTemplate.hs" #-} data AlexLastAcc a = AlexNone@@ -362,7 +497,7 @@ = AlexAccNone | AlexAcc a | AlexAccSkip-{-# LINE 240 "templates/GenericTemplate.hs" #-}+{-# LINE 242 "templates/GenericTemplate.hs" #-} -- used by wrappers iUnbox (I# (i)) = i
fwaccel.hs view
@@ -78,7 +78,7 @@ toAdjMatrix :: [[Weight]] -> Graph toAdjMatrix xs = A.fromList (Z :. k :. k) (concat xs)- where k = length xs+ where k = Prelude.length xs main :: IO ()
+ miscmodules.hs view
@@ -0,0 +1,6 @@+import WindowManager+import TMVar+import TList++main :: IO ()+main = return ()
parconc-examples.cabal view
@@ -1,5 +1,5 @@ name: parconc-examples-version: 0.3.5+version: 0.4 synopsis: Examples to accompany the book "Parallel and Concurrent Programming in Haskell" -- description: license: BSD3@@ -30,6 +30,9 @@ kmeans/Makefile timeout2.hs parinfer/benchmark.in+ tmvar.hs+ windowman.hs+ ChangeLog.md -- ----------------------------------------------------------------------------- -- Flags@@ -54,8 +57,6 @@ default: False -- -f-accelerate: Do not build the examples that require accelerate.--- Accelerate doesn't build with GHC 7.10 yet: accelerate-io-0.15--- requires base <4.8. flag accelerate default : True@@ -65,6 +66,12 @@ flag distributed default : True +-- -f network26: Use network-2.6. Internal flag; you shouldn't need+-- to change this.++flag network26+ default : True+ -- ----------------------------------------------------------------------------- -- par-eval @@ -186,18 +193,19 @@ , binary >=0.6.3 && < 0.8 , array >= 0.4 && <0.6 , bytestring >= 0.9 && < 0.11- , vector >= 0.10 && < 0.11+ , vector >= 0.10 && < 0.12 ghc-options: -threaded default-language: Haskell2010 executable GenSamples hs-source-dirs: kmeans main-is: GenSamples.hs+ other-modules: KMeansCore build-depends: base >= 4.5 && < 4.9 , binary >=0.6.3 && < 0.8 , array >= 0.4 && <0.6- , vector >= 0.10 && < 0.11- , random >= 1.0 && < 1.1+ , vector >= 0.10 && < 0.12+ , random >= 1.0 && < 1.2 , normaldistribution >= 1.1 && < 1.2 , deepseq >= 1.3 && < 1.5 , bytestring >= 0.9 && < 0.11@@ -228,7 +236,7 @@ other-modules: SparseGraph MapCompat hs-source-dirs: fwsparse build-depends: base >= 4.5 && < 4.9- , random >= 1.0 && < 1.1+ , random >= 1.0 && < 1.2 , array >= 0.4 && <0.6 , containers >= 0.4 && < 0.6 default-language: Haskell2010@@ -238,7 +246,7 @@ other-modules: SparseGraph MapCompat hs-source-dirs: fwsparse build-depends: base >= 4.5 && < 4.9- , random >= 1.0 && < 1.1+ , random >= 1.0 && < 1.2 , array >= 0.4 && <0.6 , containers >= 0.4 && < 0.6 , monad-par >= 0.3.4 && < 0.4@@ -251,7 +259,7 @@ build-depends: base >= 4.5 && < 4.9 , containers >= 0.4 && < 0.6 , deepseq >= 1.3 && < 1.5- , random >= 1.0 && < 1.1+ , random >= 1.0 && < 1.2 default-language: Haskell2010 executable timetable1@@ -260,7 +268,7 @@ , containers >= 0.4 && < 0.6 , deepseq >= 1.3 && < 1.5 , monad-par >= 0.3.4 && < 0.4- , random >= 1.0 && < 1.1+ , random >= 1.0 && < 1.2 default-language: Haskell2010 executable timetable2@@ -269,7 +277,7 @@ , containers >= 0.4 && < 0.6 , deepseq >= 1.3 && < 1.5 , monad-par >= 0.3.4 && < 0.4- , random >= 1.0 && < 1.1+ , random >= 1.0 && < 1.2 default-language: Haskell2010 executable timetable3@@ -278,7 +286,7 @@ , containers >= 0.4 && < 0.6 , deepseq >= 1.3 && < 1.5 , monad-par >= 0.3.4 && < 0.4- , random >= 1.0 && < 1.1+ , random >= 1.0 && < 1.2 default-language: Haskell2010 executable parinfer@@ -348,7 +356,7 @@ build-depends: base >= 4.5 && < 4.9 ghc-options: -O2 if flag(accelerate)- build-depends: accelerate >= 0.12 && < 0.15+ build-depends: accelerate >= 0.12 && < 0.16 else buildable: False default-language: Haskell2010@@ -357,7 +365,7 @@ main-is: fwaccel-gpu.hs build-depends: base >= 4.5 && < 4.9 if flag(accelerate)- build-depends: accelerate >= 0.12 && < 0.15+ build-depends: accelerate >= 0.12 && < 0.16 else buildable: False if flag(cuda)@@ -374,7 +382,7 @@ build-depends: base >= 4.5 && < 4.9 , fclabels if flag(accelerate)- build-depends: accelerate >= 0.12 && < 0.15+ build-depends: accelerate >= 0.12 && < 0.16 , accelerate-io else buildable: False@@ -450,9 +458,13 @@ other-modules: GetURL build-depends: base >= 4.5 && < 4.9 , containers >= 0.4 && < 0.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.* , bytestring >= 0.9 && < 0.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturls2@@ -462,8 +474,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturls3@@ -473,8 +489,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturls4@@ -484,8 +504,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturls5@@ -495,8 +519,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturls6@@ -506,8 +534,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 -- -----------------------------------------------------------------------------@@ -520,8 +552,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturlscancel2@@ -531,8 +567,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable modifytwo@@ -563,29 +603,27 @@ -- ----------------------------------------------------------------------------- -- conc-stm --- not mentioned in the text?-executable windowman- main-is: windowman.hs+executable miscmodules+ main-is: miscmodules.hs+ other-modules: TMVar, TList, TQueue, TBQueue, WindowManager build-depends: base >= 4.5 && < 4.9 , containers >= 0.4 && < 0.6 , stm ==2.4.* default-language: Haskell2010 -executable tmvar- main-is: tmvar.hs- build-depends: base >= 4.5 && < 4.9- , stm ==2.4.*- default-language: Haskell2010- executable geturlsfirst main-is: geturlsfirst.hs- other-modules: ConcurrentUtils+ other-modules: ConcurrentUtils, GetURL build-depends: base >= 4.5 && < 4.9 , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6 , HTTP ==4000.2.*- , network >= 2.3 && < 2.5+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable TChan@@ -594,56 +632,52 @@ , stm ==2.4.* default-language: Haskell2010 -executable TList- main-is: TList.hs- build-depends: base >= 4.5 && < 4.9- , stm ==2.4.*- default-language: Haskell2010--executable TQueue- main-is: TQueue.hs- build-depends: base >= 4.5 && < 4.9- , stm ==2.4.*- default-language: Haskell2010--executable TBQueue- main-is: TBQueue.hs- build-depends: base >= 4.5 && < 4.9- , stm ==2.4.*- default-language: Haskell2010- -- ----------------------------------------------------------------------------- -- conc-higher executable geturls7 main-is: geturls7.hs- other-modules: ConcurrentUtils+ other-modules: ConcurrentUtils, GetURL build-depends: base >= 4.5 && < 4.9 , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturls8 main-is: geturls8.hs+ other-modules: Async, GetURL build-depends: base >= 4.5 && < 4.9 , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturls9 main-is: geturls9.hs+ other-modules: Async, GetURL build-depends: base >= 4.5 && < 4.9 , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable timeout2@@ -712,7 +746,11 @@ other-modules: ConcurrentUtils build-depends: base >= 4.5 && < 4.9 , stm ==2.4.*- , network >= 2.3 && < 2.5+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable server2@@ -721,7 +759,11 @@ build-depends: base >= 4.5 && < 4.9 , stm ==2.4.* , async ==2.0.*- , network >= 2.3 && < 2.5+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable chat@@ -731,7 +773,11 @@ , containers >= 0.4 && < 0.6 , async ==2.0.* , stm ==2.4.*- , network >= 2.3 && < 2.5+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 -- -----------------------------------------------------------------------------@@ -741,9 +787,13 @@ main-is: distrib-ping/ping.hs other-modules: DistribUtils build-depends: base >= 4.5 && < 4.9- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -760,9 +810,13 @@ main-is: distrib-ping/ping-multi.hs other-modules: DistribUtils build-depends: base >= 4.5 && < 4.9- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -779,9 +833,13 @@ main-is: distrib-ping/ping-tc.hs other-modules: DistribUtils build-depends: base >= 4.5 && < 4.9- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -798,9 +856,13 @@ main-is: distrib-ping/ping-tc-merge.hs other-modules: DistribUtils build-depends: base >= 4.5 && < 4.9- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -818,9 +880,13 @@ main-is: distrib-ping/ping-tc-notify.hs other-modules: DistribUtils build-depends: base >= 4.5 && < 4.9- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -836,9 +902,13 @@ executable ping-fail main-is: distrib-ping/ping-fail.hs build-depends: base >= 4.5 && < 4.9- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -858,10 +928,14 @@ , containers >= 0.4 && < 0.6 , stm ==2.4.* , async ==2.0.*- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , transformers >=0.3 && <0.5 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -881,10 +955,14 @@ , containers >= 0.4 && < 0.6 , stm ==2.4.* , async ==2.0.*- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , transformers >=0.3 && <0.5 , template-haskell >= 2.7 && < 2.11+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -905,10 +983,14 @@ , containers >= 0.4 && < 0.6 , stm ==2.4.* , async ==2.0.*- , network >= 2.3 && < 2.5 , binary >=0.6.3 && < 0.8 , template-haskell >= 2.7 && < 2.11 , transformers >=0.3 && <0.5+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 if impl(ghc <= 7.6) -- prior to ghc-7.4 generics lived in ghc-prim build-depends: ghc-prim@@ -961,9 +1043,13 @@ , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6 , HTTP ==4000.2.*- , network >= 2.3 && < 2.5- , utf8-string ==0.3.*+ , utf8-string >= 0.3 && < 1.1 , xml ==1.3.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable bingtranslatorconc@@ -974,9 +1060,13 @@ , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6 , HTTP ==4000.2.*- , network >= 2.3 && < 2.5- , utf8-string ==0.3.*+ , utf8-string >= 0.3 && < 1.1 , xml ==1.3.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 executable geturlsstm@@ -986,14 +1076,12 @@ , stm ==2.4.* , bytestring >= 0.9 && < 0.11 , time >= 1.4 && < 1.6- , network >= 2.3 && < 2.5 , HTTP ==4000.2.*- default-language: Haskell2010--executable Async- main-is: Async.hs- build-depends: base >= 4.5 && < 4.9- , stm ==2.4.*+ if flag(network26)+ build-depends: network >= 2.6 && < 2.7+ , network-uri >= 2.6 && < 2.7+ else+ build-depends: network >= 2.3 && < 2.6 default-language: Haskell2010 -- ToDo: