Skip to content

Commit a20290c

Browse files
committed
Merge pull request #3383 from BardurArantsson/reorg-solver-modules-2
Move ConstraintSource and ResolverPackage to Distribution.Solver.*
2 parents d1d503a + 6390349 commit a20290c

23 files changed

+123
-102
lines changed

cabal-install/Distribution/Client/Config.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ import Distribution.Client.Types
4848
( RemoteRepo(..), Username(..), Password(..), emptyRemoteRepo )
4949
import Distribution.Client.BuildReports.Types
5050
( ReportLevel(..) )
51-
import Distribution.Client.Dependency.Types
52-
( ConstraintSource(..) )
5351
import Distribution.Client.Setup
5452
( GlobalFlags(..), globalCommand, defaultGlobalFlags
5553
, ConfigExFlags(..), configureExOptions, defaultConfigExFlags
@@ -99,6 +97,8 @@ import Distribution.Compiler
9997
import Distribution.Verbosity
10098
( Verbosity, normal )
10199

100+
import Distribution.Solver.Types.ConstraintSource
101+
102102
import Data.List
103103
( partition, find, foldl' )
104104
import Data.Maybe

cabal-install/Distribution/Client/Configure.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ module Distribution.Client.Configure (
2020

2121
import Distribution.Client.Dependency
2222
import Distribution.Client.Dependency.Types
23-
( ConstraintSource(..)
24-
, LabeledPackageConstraint(..), showConstraintSource )
23+
( LabeledPackageConstraint(..) )
2524
import qualified Distribution.Client.InstallPlan as InstallPlan
2625
import Distribution.Client.InstallPlan (SolverInstallPlan)
2726
import Distribution.Client.IndexUtils as IndexUtils
@@ -38,6 +37,7 @@ import Distribution.Package (PackageId)
3837
import Distribution.Client.JobControl (Lock)
3938

4039
import qualified Distribution.Solver.Types.ComponentDeps as CD
40+
import Distribution.Solver.Types.ConstraintSource
4141
import Distribution.Solver.Types.OptionalStanza
4242
import Distribution.Solver.Types.PackageIndex
4343
( PackageIndex, elemByPackageName )

cabal-install/Distribution/Client/Dependency.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,9 @@ import Distribution.Client.Types
7474
, UnresolvedPkgLoc, UnresolvedSourcePackage
7575
, enableStanzas )
7676
import Distribution.Client.Dependency.Types
77-
( PreSolver(..), Solver(..), DependencyResolver, ResolverPackage(..)
77+
( PreSolver(..), Solver(..), DependencyResolver
7878
, PackageConstraint(..), showPackageConstraint
7979
, LabeledPackageConstraint(..), unlabelPackageConstraint
80-
, ConstraintSource(..), showConstraintSource
8180
, PackagePreferences(..), InstalledPreference(..)
8281
, PackagesPreferenceDefault(..) )
8382
import Distribution.Client.Sandbox.Types
@@ -116,10 +115,12 @@ import Distribution.Verbosity
116115

117116
import Distribution.Solver.Types.ComponentDeps (ComponentDeps)
118117
import qualified Distribution.Solver.Types.ComponentDeps as CD
118+
import Distribution.Solver.Types.ConstraintSource
119119
import Distribution.Solver.Types.OptionalStanza
120120
import qualified Distribution.Solver.Types.PackageIndex as PackageIndex
121121
import Distribution.Solver.Types.PkgConfigDb (PkgConfigDb)
122122
import Distribution.Solver.Types.Progress
123+
import Distribution.Solver.Types.ResolverPackage
123124
import Distribution.Solver.Types.Settings
124125
import Distribution.Solver.Types.SolverId
125126
import Distribution.Solver.Types.SolverPackage

cabal-install/Distribution/Client/Dependency/TopDown.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import Distribution.Client.Types
2323
( UnresolvedPkgLoc
2424
, UnresolvedSourcePackage, enableStanzas )
2525
import Distribution.Client.Dependency.Types
26-
( DependencyResolver, ResolverPackage(..)
26+
( DependencyResolver
2727
, PackageConstraint(..), unlabelPackageConstraint
2828
, PackagePreferences(..), InstalledPreference(..) )
2929

@@ -58,6 +58,7 @@ import qualified Distribution.Solver.Types.ComponentDeps as CD
5858
import qualified Distribution.Solver.Types.PackageIndex as PackageIndex
5959
import Distribution.Solver.Types.PackageIndex ( PackageIndex )
6060
import Distribution.Solver.Types.Progress
61+
import Distribution.Solver.Types.ResolverPackage
6162
import Distribution.Solver.Types.SolverId
6263
import Distribution.Solver.Types.SolverPackage
6364
import Distribution.Solver.Types.SourcePackage

cabal-install/Distribution/Client/Dependency/Types.hs

Lines changed: 3 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
{-# LANGUAGE DeriveFunctor #-}
21
{-# LANGUAGE DeriveGeneric #-}
3-
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
42
-----------------------------------------------------------------------------
53
-- |
64
-- Module : Distribution.Client.Dependency.Types
@@ -18,7 +16,6 @@ module Distribution.Client.Dependency.Types (
1816
Solver(..),
1917

2018
DependencyResolver,
21-
ResolverPackage(..),
2219

2320
PackageConstraint(..),
2421
showPackageConstraint,
@@ -27,28 +24,25 @@ module Distribution.Client.Dependency.Types (
2724
PackagesPreferenceDefault(..),
2825

2926
LabeledPackageConstraint(..),
30-
ConstraintSource(..),
31-
unlabelPackageConstraint,
32-
showConstraintSource
27+
unlabelPackageConstraint
3328

3429
) where
3530

3631
import Data.Char
3732
( isAlpha, toLower )
3833

34+
import Distribution.Solver.Types.ConstraintSource
3935
import Distribution.Solver.Types.OptionalStanza
4036
import Distribution.Solver.Types.PkgConfigDb ( PkgConfigDb )
4137
import Distribution.Solver.Types.PackageIndex ( PackageIndex )
4238
import Distribution.Solver.Types.Progress
39+
import Distribution.Solver.Types.ResolverPackage
4340
import Distribution.Solver.Types.SourcePackage
44-
import Distribution.Solver.Types.SolverPackage
4541

4642
import qualified Distribution.Compat.ReadP as Parse
4743
( pfail, munch1 )
4844
import Distribution.PackageDescription
4945
( FlagAssignment, FlagName(..) )
50-
import Distribution.InstalledPackageInfo
51-
( InstalledPackageInfo )
5246
import Distribution.Simple.PackageIndex ( InstalledPackageIndex )
5347
import Distribution.Package
5448
( PackageName )
@@ -110,14 +104,6 @@ type DependencyResolver loc = Platform
110104
-> [PackageName]
111105
-> Progress String String [ResolverPackage loc]
112106

113-
-- | The dependency resolver picks either pre-existing installed packages
114-
-- or it picks source packages along with package configuration.
115-
--
116-
-- This is like the 'InstallPlan.PlanPackage' but with fewer cases.
117-
--
118-
data ResolverPackage loc = PreExisting InstalledPackageInfo
119-
| Configured (SolverPackage loc)
120-
121107
-- | Per-package constraints. Package constraints must be respected by the
122108
-- solver. Multiple constraints for each package can be given, though obviously
123109
-- it is possible to construct conflicting constraints (eg impossible version
@@ -206,65 +192,3 @@ data LabeledPackageConstraint
206192

207193
unlabelPackageConstraint :: LabeledPackageConstraint -> PackageConstraint
208194
unlabelPackageConstraint (LabeledPackageConstraint pc _) = pc
209-
210-
-- | Source of a 'PackageConstraint'.
211-
data ConstraintSource =
212-
213-
-- | Main config file, which is ~/.cabal/config by default.
214-
ConstraintSourceMainConfig FilePath
215-
216-
-- | Local cabal.project file
217-
| ConstraintSourceProjectConfig FilePath
218-
219-
-- | Sandbox config file, which is ./cabal.sandbox.config by default.
220-
| ConstraintSourceSandboxConfig FilePath
221-
222-
-- | User config file, which is ./cabal.config by default.
223-
| ConstraintSourceUserConfig FilePath
224-
225-
-- | Flag specified on the command line.
226-
| ConstraintSourceCommandlineFlag
227-
228-
-- | Target specified by the user, e.g., @cabal install package-0.1.0.0@
229-
-- implies @package==0.1.0.0@.
230-
| ConstraintSourceUserTarget
231-
232-
-- | Internal requirement to use installed versions of packages like ghc-prim.
233-
| ConstraintSourceNonUpgradeablePackage
234-
235-
-- | Internal requirement to use the add-source version of a package when that
236-
-- version is installed and the source is modified.
237-
| ConstraintSourceModifiedAddSourceDep
238-
239-
-- | Internal constraint used by @cabal freeze@.
240-
| ConstraintSourceFreeze
241-
242-
-- | Constraint specified by a config file, a command line flag, or a user
243-
-- target, when a more specific source is not known.
244-
| ConstraintSourceConfigFlagOrTarget
245-
246-
-- | The source of the constraint is not specified.
247-
| ConstraintSourceUnknown
248-
deriving (Eq, Show, Generic)
249-
250-
instance Binary ConstraintSource
251-
252-
-- | Description of a 'ConstraintSource'.
253-
showConstraintSource :: ConstraintSource -> String
254-
showConstraintSource (ConstraintSourceMainConfig path) =
255-
"main config " ++ path
256-
showConstraintSource (ConstraintSourceProjectConfig path) =
257-
"project config " ++ path
258-
showConstraintSource (ConstraintSourceSandboxConfig path) =
259-
"sandbox config " ++ path
260-
showConstraintSource (ConstraintSourceUserConfig path)= "user config " ++ path
261-
showConstraintSource ConstraintSourceCommandlineFlag = "command line flag"
262-
showConstraintSource ConstraintSourceUserTarget = "user target"
263-
showConstraintSource ConstraintSourceNonUpgradeablePackage =
264-
"non-upgradeable package"
265-
showConstraintSource ConstraintSourceModifiedAddSourceDep =
266-
"modified add-source dependency"
267-
showConstraintSource ConstraintSourceFreeze = "cabal freeze"
268-
showConstraintSource ConstraintSourceConfigFlagOrTarget =
269-
"config file, command line flag, or user target"
270-
showConstraintSource ConstraintSourceUnknown = "unknown source"

cabal-install/Distribution/Client/Freeze.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import Distribution.Client.Types
2121
import Distribution.Client.Targets
2222
import Distribution.Client.Dependency
2323
import Distribution.Client.Dependency.Types
24-
( ConstraintSource(..), LabeledPackageConstraint(..) )
24+
( LabeledPackageConstraint(..) )
2525
import Distribution.Client.IndexUtils as IndexUtils
2626
( getSourcePackages, getInstalledPackages )
2727
import Distribution.Client.InstallPlan
@@ -36,6 +36,7 @@ import Distribution.Client.Sandbox.PackageEnvironment
3636
import Distribution.Client.Sandbox.Types
3737
( SandboxPackageInfo(..) )
3838

39+
import Distribution.Solver.Types.ConstraintSource
3940
import Distribution.Solver.Types.OptionalStanza
4041
import Distribution.Solver.Types.PkgConfigDb
4142
( PkgConfigDb, readPkgConfigDb )

cabal-install/Distribution/Client/Install.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ import Distribution.Client.Configure
7272
( chooseCabalVersion, configureSetupScript, checkConfigExFlags )
7373
import Distribution.Client.Dependency
7474
import Distribution.Client.Dependency.Types
75-
( Solver(..), ConstraintSource(..), LabeledPackageConstraint(..) )
75+
( Solver(..), LabeledPackageConstraint(..) )
7676
import Distribution.Client.FetchUtils
7777
import Distribution.Client.HttpUtils
7878
( HttpTransport (..) )
@@ -110,6 +110,7 @@ import Distribution.Client.Compat.ExecutablePath
110110
import Distribution.Client.JobControl
111111

112112
import qualified Distribution.Solver.Types.ComponentDeps as CD
113+
import Distribution.Solver.Types.ConstraintSource
113114
import Distribution.Solver.Types.OptionalStanza
114115
import qualified Distribution.Solver.Types.PackageIndex as SourcePackageIndex
115116
import Distribution.Solver.Types.PackageFixedDeps

cabal-install/Distribution/Client/ProjectConfig/Legacy.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ module Distribution.Client.ProjectConfig.Legacy (
2323
import Distribution.Client.ProjectConfig.Types
2424
import Distribution.Client.Types
2525
( RemoteRepo(..), emptyRemoteRepo )
26-
import Distribution.Client.Dependency.Types
27-
( ConstraintSource(..) )
2826
import Distribution.Client.Config
2927
( SavedConfig(..), remoteRepoFields )
3028

29+
import Distribution.Solver.Types.ConstraintSource
30+
3131
import Distribution.Package
3232
import Distribution.PackageDescription
3333
( SourceRepo(..), RepoKind(..) )

cabal-install/Distribution/Client/ProjectConfig/Types.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ module Distribution.Client.ProjectConfig.Types (
2222
import Distribution.Client.Types
2323
( RemoteRepo )
2424
import Distribution.Client.Dependency.Types
25-
( PreSolver, ConstraintSource )
25+
( PreSolver )
2626
import Distribution.Client.Targets
2727
( UserConstraint )
2828
import Distribution.Client.BuildReports.Types
2929
( ReportLevel(..) )
3030

3131
import Distribution.Solver.Types.Settings
32-
( ReorderGoals, StrongFlags )
32+
import Distribution.Solver.Types.ConstraintSource
3333

3434
import Distribution.Package
3535
( PackageName, PackageId, UnitId, Dependency )

cabal-install/Distribution/Client/ProjectPlanning.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ import Distribution.Utils.NubList
7878

7979
import qualified Distribution.Solver.Types.ComponentDeps as CD
8080
import Distribution.Solver.Types.ComponentDeps (ComponentDeps)
81+
import Distribution.Solver.Types.ConstraintSource
8182
import Distribution.Solver.Types.OptionalStanza
8283
import Distribution.Solver.Types.PackageFixedDeps
8384
import qualified Distribution.Solver.Types.PackageIndex as SourcePackageIndex

cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import Distribution.Client.Config ( SavedConfig(..), commentSavedConfig
3636
, installDirsFields, withProgramsFields
3737
, withProgramOptionsFields
3838
, defaultCompiler )
39-
import Distribution.Client.Dependency.Types ( ConstraintSource (..) )
4039
import Distribution.Client.ParseUtils ( parseFields, ppFields, ppSection )
4140
import Distribution.Client.Setup ( GlobalFlags(..), ConfigExFlags(..)
4241
, InstallFlags(..)
@@ -51,6 +50,7 @@ import Distribution.Simple.Setup ( Flag(..)
5150
, ConfigFlags(..), HaddockFlags(..)
5251
, fromFlagOrDefault, toFlag, flagToMaybe )
5352
import Distribution.Simple.Utils ( die, info, notice, warn )
53+
import Distribution.Solver.Types.ConstraintSource
5454
import Distribution.ParseUtils ( FieldDescr(..), ParseResult(..)
5555
, commaListField, commaNewLineListField
5656
, liftField, lineNo, locatedErrorMsg

cabal-install/Distribution/Client/Setup.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,15 @@ import Distribution.Client.Types
5959
import Distribution.Client.BuildReports.Types
6060
( ReportLevel(..) )
6161
import Distribution.Client.Dependency.Types
62-
( PreSolver(..), ConstraintSource(..) )
62+
( PreSolver(..) )
6363
import qualified Distribution.Client.Init.Types as IT
6464
( InitFlags(..), PackageType(..) )
6565
import Distribution.Client.Targets
6666
( UserConstraint, readUserConstraint )
6767
import Distribution.Utils.NubList
6868
( NubList, toNubList, fromNubList)
6969

70+
import Distribution.Solver.Types.ConstraintSource
7071
import Distribution.Solver.Types.Settings
7172

7273
import Distribution.Simple.Compiler (PackageDB)

cabal-install/Distribution/Client/Targets.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,10 @@ import Distribution.Client.Types
5858
( PackageLocation(..)
5959
, ResolvedPkgLoc, UnresolvedSourcePackage )
6060
import Distribution.Client.Dependency.Types
61-
( PackageConstraint(..), ConstraintSource(..)
61+
( PackageConstraint(..)
6262
, LabeledPackageConstraint(..) )
6363

64+
import Distribution.Solver.Types.ConstraintSource
6465
import Distribution.Solver.Types.OptionalStanza
6566
import Distribution.Solver.Types.PackageIndex (PackageIndex)
6667
import qualified Distribution.Solver.Types.PackageIndex as PackageIndex

cabal-install/Distribution/Client/Types.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{-# LANGUAGE DeriveFunctor #-}
22
{-# LANGUAGE DeriveGeneric #-}
3-
{-# LANGUAGE StandaloneDeriving #-}
43
{-# LANGUAGE BangPatterns #-}
54
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
65
{-# OPTIONS_GHC -fno-warn-orphans #-}

cabal-install/Distribution/Solver/Modular/ConfiguredConversion.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import Prelude hiding (pi)
77

88
import Distribution.Package (UnitId, packageId)
99

10-
import Distribution.Client.Dependency.Types (ResolverPackage(..))
1110
import qualified Distribution.Simple.PackageIndex as SI
1211

1312
import Distribution.Solver.Modular.Configured
1413
import Distribution.Solver.Modular.Package
1514

16-
import qualified Distribution.Solver.Types.PackageIndex as CI
1715
import Distribution.Solver.Types.ComponentDeps (ComponentDeps)
16+
import qualified Distribution.Solver.Types.PackageIndex as CI
17+
import Distribution.Solver.Types.ResolverPackage
1818
import Distribution.Solver.Types.SolverId
1919
import Distribution.Solver.Types.SolverPackage
2020
import Distribution.Solver.Types.SourcePackage

cabal-install/Distribution/Solver/Modular/Message.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ import Distribution.Solver.Modular.Flag
1515
import Distribution.Solver.Modular.Package
1616
import Distribution.Solver.Modular.Tree
1717
( FailReason(..), POption(..) )
18+
import Distribution.Solver.Types.ConstraintSource
1819
import Distribution.Solver.Types.Progress
19-
import Distribution.Client.Dependency.Types
20-
( ConstraintSource(..), showConstraintSource )
2120

2221
data Message =
2322
Enter -- ^ increase indentation level

cabal-install/Distribution/Solver/Modular/Preference.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ import Data.Map (Map)
2929
import Data.Traversable (sequence)
3030

3131
import Distribution.Client.Dependency.Types
32-
( PackageConstraint(..), LabeledPackageConstraint(..), ConstraintSource(..)
32+
( PackageConstraint(..), LabeledPackageConstraint(..)
3333
, PackagePreferences(..), InstalledPreference(..) )
34+
import Distribution.Solver.Types.ConstraintSource
3435
import Distribution.Solver.Types.OptionalStanza
3536

3637
import Distribution.Solver.Modular.Dependency

cabal-install/Distribution/Solver/Modular/Tree.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import Distribution.Solver.Modular.Package
2626
import Distribution.Solver.Modular.PSQ (PSQ)
2727
import qualified Distribution.Solver.Modular.PSQ as P
2828
import Distribution.Solver.Modular.Version
29-
import Distribution.Client.Dependency.Types ( ConstraintSource(..) )
29+
import Distribution.Solver.Types.ConstraintSource
3030

3131
-- | Type of the search tree. Inlining the choice nodes for now.
3232
data Tree a =

0 commit comments

Comments
 (0)