presentation of dependencies in the web interface

Thomas Schilling nominolo at
Thu Oct 25 07:17:43 EDT 2007

On Thu, 2007-10-25 at 11:40 +0100, Ross Paterson wrote:
> Dependencies between packages are obviously more complex now that we
> have configurations.
> The web interface now has an experimental presentation of these
> dependencies transformed into disjunctive normal form, with the atoms
> being simple version ranges.  It lacks tests of os, arch and impl,
> which will need to be added later.  Still, people using configurations
> without those tests might like to check what it does to their packages.
> _______________________________________________
> cabal-devel mailing list
> cabal-devel at

Thanks for the quick fix, I just noticed the problem yesterday.  I
presume the final interface should be to give the user a simple way to
query the dependenies by giving assignments for OS, arch,
implementation, etc. and then dynamically (yes, using JavaScript)
updating the dependency list.  It shouldn't be hard to generate the
necessary code from the Cabal file.  I think the current way is okay for
now, though.

The main problem with using this representation is, that it assumes that
flags are only used to let Cabal decide dependencies based on present
dependencies.  This is exactly the part I would *not* want to use them
for -- they are meant to be used to enable/disable certain features
like, e.g., using GTK or WXWindows or building with debugging support.
Duncan is currently implementing his proposal to use the 'package(...)'
predicate to enable specifying differnent dependencies depending on the
version of some package.  We will still need to show this DNF
representation of the dependencies, but it shouldn't assume that all
flags are variable.

BTW, do you think your code should/could go into Cabal, so that possibly
other tools may take advantage of this feature?

/ Thomas

More information about the cabal-devel mailing list