Skip to content

Commit 99cba3c

Browse files
committed
simulation: Group import statements
1 parent cde57df commit 99cba3c

20 files changed

+178
-134
lines changed

simulation/src/ChanTCP.hs

+33-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
{-# LANGUAGE BangPatterns #-}
2-
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
31
{-# LANGUAGE NamedFieldPuns #-}
42
{-# LANGUAGE ScopedTypeVariables #-}
53

@@ -12,19 +10,41 @@ module ChanTCP (
1210
TcpConnProps (..),
1311
) where
1412

13+
import Control.Concurrent.Class.MonadSTM (
14+
MonadSTM (
15+
TMVar,
16+
TVar,
17+
atomically,
18+
modifyTVar',
19+
newEmptyTMVarIO,
20+
newTVarIO,
21+
putTMVar,
22+
readTMVar,
23+
readTVar,
24+
retry,
25+
takeTMVar,
26+
writeTVar
27+
),
28+
)
29+
import Control.Exception (assert)
30+
import Control.Monad (when)
31+
import Control.Monad.Class.MonadAsync (MonadAsync (async))
32+
import Control.Monad.Class.MonadTime.SI (
33+
DiffTime,
34+
MonadMonotonicTime (..),
35+
MonadTime,
36+
Time,
37+
diffTime,
38+
)
39+
import Control.Monad.Class.MonadTimer (MonadDelay)
40+
import Control.Tracer as Tracer (
41+
Contravariant (contramap),
42+
Tracer,
43+
traceWith,
44+
)
1545
import Data.PQueue.Prio.Min (MinPQueue)
1646
import qualified Data.PQueue.Prio.Min as PQ
1747

18-
import Control.Concurrent.Class.MonadSTM
19-
import Control.Exception (assert)
20-
import Control.Monad
21-
import Control.Monad.Class.MonadAsync
22-
import Control.Monad.Class.MonadTime.SI
23-
import Control.Monad.Class.MonadTimer
24-
import Control.Tracer as Tracer
25-
26-
import TimeCompat (threadDelaySI)
27-
2848
import Chan
2949
import ModelTCP (
3050
Bytes,
@@ -36,6 +56,7 @@ import ModelTCP (
3656
initTcpState,
3757
saneTcpState,
3858
)
59+
import TimeCompat (threadDelaySI)
3960

4061
-- | In the scope of a two party connection, there are just two peers. These
4162
-- can be maped to a wider scope peer identity via contra-trace.

simulation/src/ExamplesLayout.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
module ExamplesLayout where
44

5-
import Viz
6-
75
import qualified Graphics.Rendering.Cairo as Cairo
8-
import Numeric
6+
import Numeric (showFFloat)
7+
8+
import Viz
99

1010
------------------------------------------------------------------------------
1111
-- Example layouts for vizualisation

simulation/src/ExamplesRelay.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module ExamplesRelay where
22

3-
import Data.Word
3+
import Data.Word (Word8)
44
import System.Random (mkStdGen, uniform)
55

66
import RelayProtocol

simulation/src/ExamplesRelayP2P.hs

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
module ExamplesRelayP2P where
44

5-
import Data.Functor.Contravariant
6-
import Data.Word
7-
5+
import Data.Functor.Contravariant (Contravariant (contramap))
6+
import Data.Word (Word8)
87
import System.Random (mkStdGen, uniform)
98

109
import P2P (P2PTopographyCharacteristics (..), genArbitraryP2PTopography)

simulation/src/ExamplesTCP.hs

+3-6
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@
22

33
module ExamplesTCP where
44

5-
import Data.Functor.Contravariant
6-
import Data.Word
7-
85
import Control.Monad.Class.MonadTime.SI (DiffTime, Time)
9-
10-
import System.Random (mkStdGen, random)
11-
6+
import Data.Functor.Contravariant (Contravariant (contramap))
7+
import Data.Word (Word8)
128
import qualified Graphics.Rendering.Chart.Easy as Chart
9+
import System.Random (mkStdGen, random)
1310

1411
import ModelTCP
1512
import PlotTCP

simulation/src/Main.hs

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
module Main where
44

5-
import Control.Applicative
6-
import Data.Maybe
7-
5+
import Control.Applicative (Alternative ((<|>)), optional)
6+
import Data.Maybe (fromMaybe)
87
import qualified Options.Applicative as Opts
98

109
import Viz

simulation/src/ModelTCP.hs

+5-6
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,15 @@ module ModelTCP (
1616
traceTcpSend,
1717
) where
1818

19-
import Data.Foldable as Foldable
19+
import Control.Exception (assert)
20+
import Control.Monad.Class.MonadTime.SI (DiffTime, Time (Time), addTime)
21+
import Data.Foldable as Foldable (Foldable (sum))
2022
import Data.List.NonEmpty (NonEmpty ((:|)))
2123
import qualified Data.List.NonEmpty as NE
2224
import Data.PQueue.Prio.Min (MinPQueue)
2325
import qualified Data.PQueue.Prio.Min as PQ
24-
import Data.Ratio
25-
import Data.Semigroup
26-
27-
import Control.Exception (assert)
28-
import Control.Monad.Class.MonadTime.SI (DiffTime, Time (Time), addTime)
26+
import Data.Ratio ((%))
27+
import Data.Semigroup (Semigroup (sconcat))
2928

3029
-- | The fixed characteristics of this TCP link: the latency, bandwidth and
3130
-- receiver window size. Each of these imposes a limit to effective

simulation/src/P2P.hs

+14-8
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,23 @@
44

55
module P2P where
66

7-
import Data.Array.ST as Array
8-
import Data.Array.Unboxed as Array
9-
import Data.Graph as Graph
7+
import Control.Monad (when)
8+
import Control.Monad.Class.MonadTime.SI (DiffTime)
9+
import Control.Monad.ST (ST)
10+
import Data.Array.ST as Array (
11+
Ix (range),
12+
MArray (newArray),
13+
STUArray,
14+
readArray,
15+
runSTUArray,
16+
writeArray,
17+
)
18+
import Data.Array.Unboxed as Array (IArray (bounds), UArray, (!))
19+
import Data.Graph as Graph (Edge, Graph, Vertex, buildG, edges)
1020
import qualified Data.KdMap.Static as KdMap
11-
import Data.List
21+
import Data.List (mapAccumL, sort, unfoldr)
1222
import Data.Map.Strict (Map)
1323
import qualified Data.Map.Strict as Map
14-
15-
import Control.Monad
16-
import Control.Monad.Class.MonadTime.SI (DiffTime)
17-
import Control.Monad.ST
1824
import System.Random (StdGen)
1925
import qualified System.Random as Random
2026

simulation/src/PlotTCP.hs

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
11
{-# LANGUAGE BangPatterns #-}
2-
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
3-
{-# LANGUAGE NamedFieldPuns #-}
42
{-# LANGUAGE ScopedTypeVariables #-}
53
-- TODO: share the orphans
64
{-# OPTIONS_GHC -Wno-orphans #-}
75

86
module PlotTCP where
97

10-
import Control.Monad.Class.MonadTime.SI
11-
12-
-- import Graphics.Gnuplot.Simple as Gnuplot
13-
-- import qualified Graphics.Gnuplot.Value.Tuple as Gnuplot.Tuple
14-
-- import qualified Graphics.Gnuplot.Terminal.PNG as Gnuplot.PNG
8+
import Control.Monad.Class.MonadTime.SI (DiffTime, Time (..))
159

1610
import ModelTCP
1711
import SimTCPLinks

simulation/src/RelayProtocol.hs

+18-9
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,32 @@ module RelayProtocol (
2020
relayClient,
2121
) where
2222

23+
import Control.Concurrent.Class.MonadSTM (
24+
MonadSTM (
25+
STM,
26+
TVar,
27+
atomically,
28+
modifyTVar',
29+
newTVarIO,
30+
readTVar,
31+
retry
32+
),
33+
)
34+
import Control.Exception (assert)
35+
import Control.Monad (when)
36+
import Control.Monad.Class.MonadTime (MonadTime (..), UTCTime)
2337
import Data.FingerTree (FingerTree)
2438
import qualified Data.FingerTree as FingerTree
2539
import qualified Data.Foldable as Foldable
26-
import Data.Function
27-
import Data.List
40+
import Data.Function (on)
41+
import Data.List (sortBy)
2842
import Data.Map (Map)
2943
import qualified Data.Map as Map
3044
import Data.Set (Set)
3145
import qualified Data.Set as Set
32-
import Data.Word
33-
34-
import Control.Concurrent.Class.MonadSTM
35-
import Control.Exception (assert)
36-
import Control.Monad
37-
import Control.Monad.Class.MonadTime
46+
import Data.Word (Word64)
3847

39-
import Chan
48+
import Chan (Chan (readChan, writeChan))
4049
import ChanTCP (MessageSize (..))
4150

4251
-- | The block relay buffer is a queue of blocks. The buffer is used to

simulation/src/SimRelay.hs

+37-13
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,54 @@
66

77
module SimRelay where
88

9-
import Data.Foldable
9+
import Control.Concurrent.Class.MonadSTM (
10+
MonadSTM (
11+
STM,
12+
TQueue,
13+
atomically,
14+
newTQueueIO,
15+
newTVarIO,
16+
readTQueue,
17+
readTVar,
18+
retry,
19+
writeTQueue,
20+
writeTVar
21+
),
22+
)
23+
import Control.Monad (forever)
24+
import Control.Monad.Class.MonadAsync (
25+
Concurrently (Concurrently, runConcurrently),
26+
MonadAsync (concurrently_),
27+
)
28+
import Control.Monad.Class.MonadTime.SI (
29+
DiffTime,
30+
MonadTime (..),
31+
NominalDiffTime,
32+
Time,
33+
UTCTime,
34+
addUTCTime,
35+
diffUTCTime,
36+
)
37+
import Control.Monad.Class.MonadTimer (MonadDelay)
38+
import Control.Monad.IOSim as IOSim (IOSim, runSimTrace)
39+
import Control.Tracer as Tracer (
40+
Contravariant (contramap),
41+
Tracer,
42+
traceWith,
43+
)
44+
import Data.Foldable (traverse_)
1045
import Data.Map.Strict (Map)
1146
import qualified Data.Map.Strict as Map
1247
import Data.Set (Set)
1348
import qualified Data.Set as Set
14-
15-
import Control.Concurrent.Class.MonadSTM
16-
import Control.Monad
17-
import Control.Monad.Class.MonadAsync
18-
import Control.Monad.Class.MonadTime.SI
19-
import Control.Monad.Class.MonadTimer
20-
import Control.Tracer as Tracer
21-
22-
import TimeCompat (threadDelayNDT, threadDelaySI)
23-
24-
import Control.Monad.IOSim as IOSim
25-
2649
import System.Random (StdGen, uniform, uniformR)
2750

2851
import Chan
2952
import ChanTCP
3053
import RelayProtocol
3154
import SimTCPLinks (labelDirToLabelLink, selectTimedEvents, simTracer)
3255
import SimTypes
56+
import TimeCompat (threadDelayNDT, threadDelaySI)
3357

3458
type RelaySimTrace = [(Time, RelaySimEvent)]
3559

simulation/src/SimRelayP2P.hs

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
1-
{-# LANGUAGE BangPatterns #-}
21
{-# LANGUAGE FlexibleContexts #-}
3-
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
42
{-# LANGUAGE NamedFieldPuns #-}
53
{-# LANGUAGE ScopedTypeVariables #-}
64

75
module SimRelayP2P where
86

9-
import Data.Foldable
10-
import Data.List
7+
import Control.Monad.Class.MonadAsync (
8+
Concurrently (Concurrently, runConcurrently),
9+
)
10+
import Control.Monad.Class.MonadTime.SI (DiffTime)
11+
import Control.Monad.IOSim as IOSim (IOSim, runSimTrace)
12+
import Control.Tracer as Tracer (
13+
Contravariant (contramap),
14+
Tracer,
15+
traceWith,
16+
)
17+
import Data.Foldable (sequenceA_)
18+
import Data.List (unfoldr)
1119
import qualified Data.Map.Strict as Map
12-
13-
import Control.Monad.Class.MonadAsync
14-
import Control.Monad.Class.MonadTime.SI
15-
import Control.Tracer as Tracer
16-
17-
import Control.Monad.IOSim as IOSim
18-
1920
import System.Random (StdGen, split)
2021

2122
import ChanTCP

0 commit comments

Comments
 (0)