Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

We’re showing branches in this repository, but you can also compare across forks.

base fork: haskell/cabal
head fork: haskell/cabal
Commits on Sep 25, 2011
Duncan Coutts dcoutts Add brief description of PVP to cabal init generated .cabal files d570609
Commits on Oct 14, 2011
Brent Yorgey init: improve prompt: 'homepage' field is not for repos. d2dc2f2
Brent Yorgey init: improve prompt: enclose y/n in parens 4af3d41
Brent Yorgey init: see whether source directory 'src' exists. 5c7404d
Commits on Oct 25, 2011
Brent Yorgey init: guess at filling in deps in the build-depends: field c692ab7
Commits on Nov 11, 2011
Duncan Coutts dcoutts Note in the README that you can install using the cabal program c579b94
Commits on Nov 17, 2011
Duncan Coutts dcoutts Now require mtl-2 28f33ca
Commits on Dec 12, 2011
igfoo igfoo Bump version to 1.14.0 d3eb771
igfoo igfoo Update dependencies 93fee77
Commits on Dec 16, 2011
Andres Löh kosmikus removing datatype contexts 2eec2e2
Commits on Jan 01, 2012
Andres Löh kosmikus removing trailing whitespace 63e9d26
Commits on Jan 09, 2012
Andres Löh kosmikus Added a comment. ad9aac7
Commits on Jan 10, 2012
Andres Löh kosmikus fix compilation with ghc-7.4
Thanks to Tuncer Ayaz.
Andres Löh kosmikus updating dependencies in
Thanks to Tuncer Ayaz.
Commits on Feb 04, 2012
Thomas Tuegel ttuegel Automatically run test suites when invoked with 'cabal install --enab…
…le-tests'. Do not install if tests fail.
Commits on Feb 07, 2012
Thomas Tuegel ttuegel Handle test and benchmark dependencies through the resolver properly.
Previously, test and benchmark dependencies were handled by editing the
package description to include or exclude those stanzas before running
the dependency resolver. Test and benchmark dependencies could only be
installed for source packages because no package description is available
for named packages before dependency resolution.

Now, test and benchmark stanzas are enabled or disabled through constraints
passed to the dependency resolver. This way, we can install dependencies for
the test suites of target packages without propagating '--enable-tests'
through the entire dependency tree; i.e., tests and benchmarks, when enabled,
are built only for target packages. Later, this will allow us to
automatically run test suites and, e.g., install only upon their success.
Thomas Tuegel ttuegel Update types in modular dependency solver to compile with new test/be…
…nchmark dependency constraints.
Thomas Tuegel ttuegel Don't build benchmarks, even if installing benchmark dependencies. db220a5
Commits on Feb 08, 2012
Thomas Tuegel ttuegel Enable tests and benchmarks in cabal-install without modifications to…
… the Cabal library.
Commits on Feb 11, 2012
Andres Löh kosmikus Added a missing case. 3af61ae
Andres Löh kosmikus show optional stanzas when printing install plans e772080
Commits on Feb 12, 2012
Andres Löh kosmikus stanza support in modular solver 9108b47
Andres Löh kosmikus let --reinstall imply --force-reinstalls for targets fb4ef4b
Commits on Feb 13, 2012
Andres Löh kosmikus make test and bench available as user constraints

  cabal install foo --enable-tests

is now equivalent to saying

  cabal install foo --constraint="foo test"

The constraint syntax in addition allows to enable tests and benchmarks
for packages that are further down in the dependency chain.
Commits on Feb 16, 2012
Thomas Tuegel ttuegel Fixed non-exhaustive pattern matches with new InstallOutcome. 411c348
Thomas Tuegel ttuegel Don't try to run test suites where none exist. a77cfc4
Commits on Feb 17, 2012
Andres Löh kosmikus added missing error message
Thanks to Thomas Tuegel for spotting this.
Tuncer Ayaz tuncer Update cabal-install package versions 3e8bb68
Commits on Feb 19, 2012
Thomas Tuegel ttuegel Fix 'cabal configure --enable-{tests,benchmarks}'.
'cabal configure' was not adding optional stanza constraints when checking
dependencies, causing '--enable-{tests,benchmarks}' to be silently ignored.
Commits on Mar 09, 2012
Andres Löh kosmikus bootstrap with --global should still respect $PREFIX
Thanks to milkypostman for providing the patch. Closes ticket #926.
Commits on Mar 15, 2012
Andres Löh kosmikus Added a comment 58432b9
Commits on Mar 28, 2012
Duncan Coutts dcoutts Fix ticket #731 fdfb694
Commits on Mar 29, 2012
Duncan Coutts dcoutts Bump version to 0.13.9, the 0.14.0 pre-release version
And depend on the released Cabal-1.14.x
Commits on Mar 31, 2012
Andres Löh kosmikus choose default solver based on compiler version
GHC-6.12 has base-3 depending on base-4. This is a situation the
topdown solver is hacked to deal with, but the new modular solver
currently doesn't support it. We therefore switch back to the
topdown solver if a GHC version before 7 is detected, but switch
to the modular solver by default in all other situations.
Commits on Apr 05, 2012
Andres Löh kosmikus adding the possibility for index-disabled packages
In the modular solver, it's now possible to mark packages
as disabled in the index conversion phase. This can be used
to mark broken packages (with missing dependencies) in such
a way that they can still be seen by the solver and reported
in error messages.

Furthermore, the feature could be used to implement
shadowing restrictions. Currently, there are some things
that can go wrong if multiple installed instances of
the same version and package exist on the system. However,
I've not enabled the use of shadowing for now, as it's
hard to match the restrictions exactly, and we can end up
excluding perfectly valid cases. Enabling shadowing
selectively by a solver flag would be an option.
Commits on Apr 06, 2012
Andres Löh kosmikus adding a solver flag for shadowing of installed packages 51f4aa3
Andres Löh kosmikus disable line-wrapping for solver debug output 973bcc7
Andres Löh kosmikus make the reinstall check less noisy
There are two aspects to this change.

The uncontroversial one is that if the install plan contains
reinstalls, we now determine if there are reverse dependencies
of such reinstalled packages that we can see. If so, these
are likely to be broken. If we find such packages, we list
them and state that we can only install the plan if
--force-reinstalls is explicitly stated.

The more controversial change is that if we cannot find such
reverse dependencies, we now merely print a warning but
continue, even though there are situations where executing
the build process can still break packages. The most likely
example of this is that we're installing to the global package
database, and user package databases on the system have
dependencies on the replaces packages -- but we cannot see
these user package databases.
Commits on Apr 07, 2012
Andres Löh kosmikus for empty install plans, print the packages that are installed
This is a fix for #623.

If we ask to install a package without --reinstall that's already
there, then we'll show the package and its version in the warning
message and suggest the use of the --reinstall flag.
Commits on Apr 08, 2012
Andres Löh kosmikus no longer pre-filter broken packages for modular solver
The modular solver can now deal with broken packages in the
index. I have, however, discovered, that broken packages were
filtered before even passing the installed package index to
the solver. I have made that filtering conditional on using
the topdown solver for now.

Related is the issue that we should not warn about possible
breakage of already broken packages. So we now exclude
already broken packages when considering whether an install
plan contains dangerous reinstalls.
Andres Löh kosmikus minor wording change when printing install plans 465f108
Commits on Apr 12, 2012
Tuncer Ayaz tuncer Update cabal-install 7062103
Commits on Apr 16, 2012
Andres Löh kosmikus treat packages that are unknown no longer as an "internal error" in m…
…odular solver
Andres Löh kosmikus handling the "optimization" option properly in config file 1e7cb53
Andres Löh kosmikus handling the solver options properly in config file 523ce03
Andres Löh kosmikus added deepseq to
deepseq is a dependency of text, and not included with ghc-7.0.4.
Andres Löh kosmikus updated changelog f58c1a8
Andres Löh kosmikus updated copyright year for Duncan 082093d
Andres Löh kosmikus bumping version to 0.14.0 0c1d613
Commits on Apr 17, 2012
Andres Löh kosmikus last-minute README changes 72e2228
Commits on Apr 18, 2012
Andres Löh kosmikus version update in Cabal Makefile 66474a0
Commits on Apr 22, 2012
Andres Löh kosmikus Update repo location. 937556a
Andres Löh kosmikus Updated repo location in cabal files. 9c218fd
Commits on Apr 25, 2012
Andres Löh kosmikus Handle test and bench stanzas without dependencies properly in modula…
…r solver.

During index conversion, the modular solver was discarding test and
bench stanzas without dependencies. As a result, constraints to enable
tests and benchmarks were then ignored in the solver.

This should close issue #940.
Commits on May 31, 2012
Andres Löh kosmikus Maintain info about manual flags in modular solver. 61bf038
Andres Löh kosmikus Store manual flag info in search tree. 951607e
Andres Löh kosmikus Make modular solver handle manual flags properly. 235c7ce
Andres Löh kosmikus Bumping version to 0.14.1. d00cb02
Commits on Jun 25, 2012
Andres Löh kosmikus Remove goal choice nodes after reordering is completed.
This saves a lot of heap space while exploring the tree and backtracking.
Andres Löh kosmikus Force the log for the error to be printed in parallel with the comple…
…te trace.

This saves a bit of heap space when running the solver with unlimited
backtracking enabled.
Andres Löh kosmikus Extended a comment. fee5510
Mikhail Glushenkov 23Skidoo Spelling. f0a9245
Mikhail Glushenkov 23Skidoo 80-col violation. 11e73a4
Mikhail Glushenkov 23Skidoo Fix typos. 6074fbd
Mikhail Glushenkov 23Skidoo Add a '-j' flag for the 'install' command. 6286c46
Mikhail Glushenkov 23Skidoo InstallPlan: Add a Processing package state.
We don't want 'InstallPlan.ready' to return packages that are currently
being processed in other threads.
Duncan Coutts dcoutts Parallelise the install command This is based on Mikhail Glushenkov's…
… patches.

It adds a '-j N' (= 'number of jobs') option for the 'install' command, which
can be used to specify the number of concurrent workers. If possible, at most
N packages will be built concurrently.

This version of the patch is less featureful than Mikhail's version but also
rather simpler. The key difference compared to Mikhail's version is that this
version is lacking the output serialisation and the ability to tag each output
message with the task it came from. All output is interleaved. The next step
will be to make parallel builds log to files rather than the console and only
to display a summary on the console.

In addition to not having to change the output functions, the code is a bit
simpler by keep the structure of the code the same as before, rather than
splitting it into a number of concurrent tasks with channels. Instead each
task simply executes the same pattern of install actions and concurrency
limits are enforced using semaphores.
Mikhail Glushenkov 23Skidoo Add -threaded and -rtsopts to cabal-install's ghc-options.
We don't want FFI calls to block all Haskell threads, so we need to use the
threaded runtime; -rtsopts is for experimenting with the number of capabilities.
Duncan Coutts dcoutts Drop the "ghc-options: -rtsopts" on cabal-install. We do not need it. 0382464
Duncan Coutts Add the missing JobControl module
Needed for the parallel builds.