debian-3.23: Modules for working with the Debian package systemSource codeContentsIndex
Debian.Apt.Dependencies
Contents
Basic CSP Types and Functions
Test CSP
Tree Helper Functions
mkSearchTree
Conflict Set
Backtracking Labeler
BackJumping Solver
Synopsis
data Status
= Remaining AndRelation
| MissingDep Relation
| Complete
type State a = (Status, [a])
complete :: State a -> Bool
data CSP a = CSP {
pnm :: PackageNameMap a
relations :: Relations
depFunction :: a -> Relations
conflicts :: a -> Relations
packageVersion :: a -> (String, DebianVersion)
}
controlCSP :: Control -> Relations -> (Paragraph -> Relations) -> CSP Paragraph
testCSP :: FilePath -> (Paragraph -> Relations) -> String -> (CSP Paragraph -> IO a) -> IO a
depF :: Paragraph -> Relations
packageVersionParagraph :: Paragraph -> (String, DebianVersion)
conflict :: CSP p -> p -> p -> Bool
conflict' :: (String, DebianVersion) -> Relation -> Bool
mkTree :: a -> [Tree a] -> Tree a
label :: Tree a -> a
initTree :: (a -> [a]) -> a -> Tree a
mapTree :: (a -> b) -> Tree a -> Tree b
foldTree :: (a -> [b] -> b) -> Tree a -> b
zipTreesWith :: (a -> b -> c) -> Tree a -> Tree b -> Tree c
prune :: (a -> Bool) -> Tree a -> Tree a
leaves :: Tree a -> [a]
inhTree :: (b -> a -> b) -> b -> Tree a -> Tree b
distrTree :: (a -> [b]) -> b -> Tree a -> Tree b
mkSearchTree :: forall a. CSP a -> Tree (State a)
earliestInconsistency :: CSP a -> State a -> Maybe ((String, DebianVersion), (String, DebianVersion))
type ConflictSet = ([(String, DebianVersion)], [Relation])
isConflict :: ConflictSet -> Bool
solutions :: Tree (State a, ConflictSet) -> [State a]
type Labeler a = CSP a -> Tree (State a) -> Tree (State a, ConflictSet)
search :: Labeler a -> CSP a -> [State a]
bt :: Labeler a
bj :: CSP p -> Tree (State p, ConflictSet) -> Tree (State p, ConflictSet)
unionCS :: [ConflictSet] -> ConflictSet
combine :: CSP p -> [(State p, ConflictSet)] -> [ConflictSet] -> ConflictSet
Basic CSP Types and Functions
data Status Source
Constructors
Remaining AndRelation
MissingDep Relation
Complete
show/hide Instances
type State a = (Status, [a])Source
complete :: State a -> BoolSource
data CSP a Source
Constructors
CSP
pnm :: PackageNameMap a
relations :: Relations
depFunction :: a -> Relations
conflicts :: a -> Relations
packageVersion :: a -> (String, DebianVersion)
Test CSP
controlCSP :: Control -> Relations -> (Paragraph -> Relations) -> CSP ParagraphSource
TODO addProvides -- see DQL.Exec
testCSP :: FilePath -> (Paragraph -> Relations) -> String -> (CSP Paragraph -> IO a) -> IO aSource
depF :: Paragraph -> RelationsSource
packageVersionParagraph :: Paragraph -> (String, DebianVersion)Source
conflict :: CSP p -> p -> p -> BoolSource
conflict' :: (String, DebianVersion) -> Relation -> BoolSource
JAS: deal with Provides (can a package provide more than one package?)
Tree Helper Functions
mkTree :: a -> [Tree a] -> Tree aSource
label :: Tree a -> aSource
initTree :: (a -> [a]) -> a -> Tree aSource
mapTree :: (a -> b) -> Tree a -> Tree bSource
foldTree :: (a -> [b] -> b) -> Tree a -> bSource
zipTreesWith :: (a -> b -> c) -> Tree a -> Tree b -> Tree cSource
prune :: (a -> Bool) -> Tree a -> Tree aSource
leaves :: Tree a -> [a]Source
inhTree :: (b -> a -> b) -> b -> Tree a -> Tree bSource
distrTree :: (a -> [b]) -> b -> Tree a -> Tree bSource
mkSearchTree
mkSearchTree :: forall a. CSP a -> Tree (State a)Source
earliestInconsistency :: CSP a -> State a -> Maybe ((String, DebianVersion), (String, DebianVersion))Source
earliestInconsistency does what it sounds like the 'reverse as' is because the vars are order high to low, but we want to find the lowest numbered (aka, eariest) inconsistency ??
Conflict Set
type ConflictSet = ([(String, DebianVersion)], [Relation])Source
conflicting packages and relations that require non-existant packages
isConflict :: ConflictSet -> BoolSource
solutions :: Tree (State a, ConflictSet) -> [State a]Source
type Labeler a = CSP a -> Tree (State a) -> Tree (State a, ConflictSet)Source
search :: Labeler a -> CSP a -> [State a]Source
Backtracking Labeler
bt :: Labeler aSource
BackJumping Solver
bj :: CSP p -> Tree (State p, ConflictSet) -> Tree (State p, ConflictSet)Source

bj - backjumping labeler

If the node already has a conflict set, then leave it alone.

Otherwise, the conflictset for the node is the combination of the conflict sets of its direct children.

unionCS :: [ConflictSet] -> ConflictSetSource
combine :: CSP p -> [(State p, ConflictSet)] -> [ConflictSet] -> ConflictSetSource
Produced by Haddock version 2.4.2