Safe Haskell | None |
---|
- data Status
- 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 -> (BinPkgName, DebianVersion)
- controlCSP :: Control -> Relations -> (Paragraph -> Relations) -> CSP Paragraph
- testCSP :: FilePath -> (Paragraph -> Relations) -> String -> (CSP Paragraph -> IO a) -> IO a
- depF :: Paragraph -> Relations
- sidPackages :: [Char]
- gutsyPackages :: [Char]
- test :: FilePath -> String -> Labeler Paragraph -> IO ()
- packageVersionParagraph :: Paragraph -> (BinPkgName, DebianVersion)
- conflict :: CSP p -> p -> p -> Bool
- conflict' :: (BinPkgName, 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 ((BinPkgName, DebianVersion), (BinPkgName, DebianVersion))
- type ConflictSet = ([(BinPkgName, 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
CSP | |
|
Test CSP
controlCSP :: Control -> Relations -> (Paragraph -> Relations) -> CSP ParagraphSource
TODO addProvides -- see DQL.Exec
sidPackages :: [Char]Source
gutsyPackages :: [Char]Source
conflict' :: (BinPkgName, DebianVersion) -> Relation -> BoolSource
JAS: deal with Provides
(can a package provide more than one package?)
Tree Helper Functions
zipTreesWith :: (a -> b -> c) -> Tree a -> Tree b -> Tree cSource
mkSearchTree
mkSearchTree :: forall a. CSP a -> Tree (State a)Source
earliestInconsistency :: CSP a -> State a -> Maybe ((BinPkgName, DebianVersion), (BinPkgName, 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 = ([(BinPkgName, DebianVersion)], [Relation])Source
conflicting packages and relations that require non-existant packages
isConflict :: ConflictSet -> BoolSource
Backtracking Labeler
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