Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
This comparison is big! We’re only showing the most recent 250 commits
Commits on Aug 16, 2009
@nominolo nominolo Add --html for haddock command.
This makes it easier to build both html documentation and a hoogle

  ./setup haddock [--html]   # build only HTML docs (default)
  ./setup haddock --hoogle   # build only Hoogle DB
  ./setup haddock --hoogle --html   # build both
Commits on Oct 01, 2009
Stephen Blackheath Make it so cabal passes the dylib-install-name when building dynamic …
…libraries on Mac OS/X.
Commits on Nov 29, 2009
@dcoutts dcoutts Update changelog for 1.8.x release d82ca34
@dcoutts dcoutts Bump version in HEAD branch to 1.9.0
The 1.8.x branch remains at
@igfoo igfoo Tweak layout to work with alternative layout rule 41e12a5
@igfoo igfoo Fix warnings 8e6ec28
@MarcWeber MarcWeber print a warning if repository location isn't specified and the cabal …
…project looks like being tracked by a version control system
Commits on Dec 01, 2009
@igfoo igfoo Install shared libraries as executable files
Fixes GHC trac #3682. Patch from juhpetersen.
Commits on Dec 02, 2009
@dcoutts dcoutts Take line endings into account in IOEncodingUTF8 mode
When collecting the output from programs.
@dcoutts dcoutts Switch a few distribution checks to build warnings
In particular the one about -prof since this leads to borked packages.
Commits on Dec 04, 2009
@igfoo igfoo Make it so cabal passes the dylib-install-name when building dynamic …
…libraries on Mac OS/X.

This is a rerecord of
    Stephen Blackheath <>**20091001053101
to avoid conflicts.
Commits on Dec 11, 2009
@dcoutts dcoutts Registering packages needs all the package dbs listed
Important for the case of registering inplace when we're using a
specific package db, e.g. when doing isolated builds.
Commits on Dec 15, 2009
@kosmikus kosmikus started on UHC support 9289b7b
Commits on Dec 16, 2009
@dcoutts dcoutts Specify DOCTYPE when generating userguide html
Useless docbook tools.
@dcoutts dcoutts Make lack of language extensions an error not a warning
Also improve the error message somewhat
Commits on Dec 22, 2009
@dcoutts dcoutts Convert XXX comments to TODO or FIXME as appropriate b91288c
@dcoutts dcoutts Find the version of hugs
This is really hard and rather nasty.
Commits on Dec 23, 2009
@dcoutts dcoutts Fixes for compiling Cabal with hugs 7f17289
@dcoutts dcoutts Implement support for hugs and nhc98 package databases
That is, work out which packages are installed for hugs and nhc98.
In both cases there is special support for the core packages.
In future both should use the standard method when they supply
proper installed package info files for the bundled libraries.
@dcoutts dcoutts Simplify getInstalledPackages and callers
No longer returns Maybe, we can find installed packages for all
the compilers we support (and this feature is a requirement for
support for new compilers).
This is an API change so cannot merge to Cabal-1.8.x branch.
Commits on Dec 28, 2009
@dcoutts dcoutts Make the datadir follow the $prefix on Windows
This is slightly experimental, we'll see how it goes. See ticket #466.
@dcoutts dcoutts Fix name clashes in hugs module b8cfc89
@dcoutts dcoutts Fix priority of the two global hugs package dbs 26f35f3
@dcoutts dcoutts Add a number of TODOs 2de5703
@dcoutts dcoutts Move registering to per-compiler modules, fix inplace register for hugs 76ab3d0
@dcoutts dcoutts Change preprocessModule to preprocessFile
So we can stop pretending that "main-is: foo.hs" is a module name.
Also allows us to deprecate ModuleName.simple which bypasses the
ModuleName type invariant.
@dcoutts dcoutts Fix generating Paths_pkgname module with hugs
In the case that the progsdir is not relative to the $prefix
@dcoutts dcoutts Remove deprecated --copy-prefix= feature
It's been deprecated since Cabal 1.1.4 (over 3 years).
The replacement since then has been --destdir=
Commits on Dec 29, 2009
@aslatter aslatter Add parenthesis to macros in cabal_macros.h
Now this like "#if !MIN_VERSION_base(4,2,0)" will work
@dcoutts dcoutts Silence warning about unused paramater 0e75a20
@dcoutts dcoutts Revert the change to filter out deps of non-buildable components
It does not work as intended and gives inconsistent results between
cabal install and cabal configure. The problem with the approach was
that we were filtering out the dependencies of non-buildable components
at the end. But that does not help much since if one of the deps of
the non-buildable component were not available then we would have
failed earlier with a constraint failure. A proper solution would have
to tackle it from the beginning, not just as a filter at the end.
The meaning of build-depends and buildable: False needs more thought.
Commits on Dec 30, 2009
@igfoo igfoo Get the correct value of $topdir on Windows with GHC 6.12.1 568c910
Commits on Jan 19, 2010
@Saizan Saizan Fix mismatch between arch and os variables in D.S.InstallDirs interpo…
Commits on Mar 09, 2010
@gwern gwern de-haskell98 twoMains 509cb30
@gwern gwern de-haskell98 wash2hs 8a8d573
Commits on Mar 17, 2010
@igfoo igfoo Tweak doc Makefile 99a3c24
@igfoo igfoo Document the "manual" attribute of flags 5d5ccc4
Commits on Mar 20, 2010
@dcoutts dcoutts On windows, pick up ar.exe from the ghc install before looking on the…

Some ar.exe versions floating around seem to have weird non-posix behaviour.
@dcoutts dcoutts Fix local inplace registration for ghc-6.12
This is for the case of intra-package deps where the lib has to be
registered into a local package db. We use "-inplace" suffix for
the local installed package ids (rather than using an ABI hash).
@dcoutts dcoutts Factorise duplicate finding in package description checks 772f643
Commits on Mar 21, 2010
@dcoutts dcoutts Use Setup.hs when calling setup
In case we've got a compiled Setup binary
Commits on Mar 26, 2010
@igfoo igfoo Remove an out-of-date comment 2b71426
Commits on Mar 29, 2010
@mboes mboes Add a VERSION_<package> define for each package in cabal_macros.h
The MIN_VERSION_<package> macros are useful to test whether we have at
least a given version of a dependency, but we can't extract the actual
version of dependency using this macro. This patch makes the version
of each dependency available to the code of the cabal package, which
can be useful when constructing global names in Template Haskell, for
Commits on Mar 30, 2010
@kosmikus kosmikus significant progress on UHC support 1c133e8
@kosmikus kosmikus cleaning up and removing warnings in UHC support 60e2e25
Commits on Apr 08, 2010
@dcoutts dcoutts Workaround the fact that haddock stomps on our precious .hi and .o files
When using "haddock --optghc-XTemplateHaskell" haddock will write out .o
and .hi files. This is bad because it replaces the ones we previously
built. This results in broken packages later on. Of course haddock
should not do this, it should write temp files elsewhere. The workaround
is to tell haddock to write the files to a temp dir.
Commits on Apr 09, 2010
@kmcallister kmcallister document all the language extensions
Resolves ticket #344.
@kmcallister kmcallister better error messages for erroneous local C headers
Addresses the issue in tickets #532, #648.
When the all-together test of C libraries and headers fails, use only the
preprocessor to probe the headers individually.  If they all check out,
give a more equivocal error message and suggest -v3.
Commits on Apr 11, 2010
@dcoutts dcoutts Add markdown version of user guide
Plan is to switch over from docbook xml.
@dcoutts dcoutts Adjust cpp options passed to cpp, c2hs and hsc2hs
 * Not changed for cpp, just code refactored.
 * For c2hs add cpp-options and the sysdefines (-D${os}_BUILD_OS etc)
 * For hsc2hs add the sysdefines
@dcoutts dcoutts Also set -stubdir for haddock-stomping workaround
Probably needed in the case of foreign exports and TH.
Commits on Apr 12, 2010
@dcoutts dcoutts Move .hs-boot file pre-processor hack to a more sensible place cce0075
@dcoutts dcoutts Get ghc, hsc2hs and cpphs programs more robustly in preprocessing
Avoid pattern match failure in obscure circumstances
Should fix ticket #383
Commits on Apr 13, 2010
@dcoutts dcoutts Various minor improvements to c2hs support
  - ticket #327: require c2hs version 0.15 as minimum
  - ticket #536: pass c2hs include dirs of dependent packages
  - ticket #537: pass c2hs location of gcc -E
Commits on Apr 15, 2010
@dcoutts dcoutts Also check compiling C headers at configure-time
So we now both check if the headers can be pre-processed and separately
if they can be compiled. If it fails the pre-processing check then it
is usually (but not always) a missing header. If it fails to compile
then it is definately borked, not missing. Error messages reflect this.
Commits on Apr 16, 2010
@dcoutts dcoutts Remove BSD4 from the list of known/suggested licenses
We do not ever want to suggest the use of the BSD4 license.
This will fix a QA check message and the 'cabal init' command.
This change should be safe to push into the stable 1.8 branch.
@igfoo igfoo Add the new DoRec extension to Language.Haskell.Extension
Part of GHC trac #3968.
Commits on Apr 20, 2010
@dcoutts dcoutts Pass the exe/lib to the per-compiler installLib/Exe functions
So the generic code iterates over the libs/exes rather than
the per-compiler code doing that. It'll help when we have
more complex inter-component dependencies.
This is also the proper fix for ticket #525.
@dcoutts dcoutts Better error message when installing for unsupported compilers 3c5c17f
@dcoutts dcoutts Bump version number 3fd8abb
@dcoutts dcoutts Do not pass the CopyFlags to the per-compiler installLib/Exe functions 6adaa7b
Commits on Apr 22, 2010
@dcoutts dcoutts Add the autogen dir to the C include dirs when checking foreign libs
This allows packages to generate .h files and stick them in the
autogen dir, and still have local .h files include those generated
header files. Used in gtk2hs.
@dcoutts dcoutts Add the hs output dir to the C include dirs when compiling C code
This allows C files in a package to include the _stub.h files
that ghc generates. This is needed for the C code to be able
to call the C functions exported using the FFI.
Commits on May 05, 2010
@simonmar simonmar Allow filepath-1.2.* 4bd5b72
Commits on May 09, 2010
@igfoo igfoo Fix warnings f67a5d6
Commits on May 15, 2010
@igfoo igfoo Add some diagnostic info to some internal errors
When giving an "internal error: unexpected package db stack" error, say
what the stack is.
@dcoutts dcoutts Fix register --global/--user
It is a rather silly feature and is not guaranteed to work. Having
configured and built using one set of dbs, there's no guarantee you
can register into another set. We should probably just remove it.
Commits on May 16, 2010
@mkilian mkilian Pass additional parameters in generated shell scripts
While here, simplify the argument list construction in
invocationAsShellScript a little bit.
Commits on May 19, 2010
@Lemmih Lemmih There's no rts package for LHC. 741ad17
Commits on May 21, 2010
@dcoutts dcoutts Fix building packages with ghc-6.8 or older 491d3f4
Commits on May 26, 2010
@ttuegel ttuegel Parse Test stanzas
Ticket #215 (Overhaul support for packages' tests). Test
stanzas are parsed into the GenericPackageDescription and
PackageDescription data structures.
@ttuegel ttuegel Configure and build executable testsuites
Ticket #215 (Overhaul support for packages' test). During the
build stage, executable testsuites are handled analogously to
ordinary executables. This means their sources are
preprocessed and compiled. To actually compile, the build
stage actions are performed on a dummy Executable.
@ttuegel ttuegel Testsuite for Test stanza parsing
Ticket #215 (Overhaul support for packages' tests). Parse and
finalize a simple, dummy .cabal file containing a Test stanza.
Compare with the PackageDescription it which should result
from parsing.
@ttuegel ttuegel Conditional inclusion of testsuites
Ticket #215 (Overhaul support for packages' tests). The
"--enable-tests" and "--disable-tests" command-line flags are
introduced, with "--disable-tests" being the default. If tests
are disabled, the testsuites are stripped from the
GenericPackageDescription during the configure stage, before
dependencies are resolved.
Commits on May 27, 2010
@tibbe tibbe Make ar create index for in-place libraries when building
Should fix ticket #318
@tibbe tibbe Add a README explaining how to build and run the test suite
Fixes ticket #693.
@tibbe tibbe Make test suite dependencies less strict ada0e3e
@ttuegel ttuegel Check for duplicate testsuite names
Ticket #215 (Overhaul support for packages' tests). During 
package configuration, check for testsuites with the same name 
as other testsuites or executables.
@ttuegel ttuegel Check testsuite during package sanity checks
Ticket #215 (Overhaul support for packages' tests). Check for 
duplicate testsuite name or modules during 'cabal check'.
Commits on May 28, 2010
@dcoutts dcoutts Fix warnings in LHC module 55255de
Commits on May 31, 2010
@dcoutts dcoutts Bump version to 1.9.2 889cb96
austin seipp change LHC builder to use new command line interface 04e840c
Commits on Jun 01, 2010
@dcoutts dcoutts Add QA checks for tested-with field
Not allowed invalid version ranges. Also check for use of new syntax.
@ttuegel ttuegel Using more specific error messages for unsupported test types
Ticket #215 (Overhaul support for packages' tests). Replaced generic error
message about unsupported test types with specific error messages for each
stage of the build/test process. This required changing the type of 'withTest'
to better match 'withExe' and 'withLib'.
@ttuegel ttuegel Test command runs all executable testsuites
Ticket #215 (Overhaul support for packages' tests). The 'test' command runs all
executable tests listed in the package description when the package is
configured with tests enabled. The exit codes and standard output/error are
collected and reported.
Commits on Jun 02, 2010
@Lemmih Lemmih Fix the wrapping of ghc options for the LHC backend. 5690f8c
@dcoutts dcoutts Fix QA check on version range syntax to detect use of ()'s
The problem was that we do the QA check on using the new version range
syntax after parsing. The new syntax allows ()'s but previously the
code threw them away in the parser stage. We now retain them in the
AST and deal with them appropriately. This now allows the QA check to
be accurate and detect things like "build-depends: base (>= 4.2)".
@ttuegel ttuegel Corrected function 'withTest' and updated documentation
Ticket #215 (Overhaul support for packages' tests).
Commits on Jun 03, 2010
@ttuegel ttuegel Defined constant for matching test type 'executable == 1'
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Logging test output to file
Ticket #215 (Overhaul support for packages' tests). Log test output to a
uniquely named file in the system temporary directory. This avoids flooding the
terminal with long error messages.
Commits on Jun 04, 2010
@ttuegel ttuegel Restored 'runTests' UserHook
Ticket #215 (Overhaul support for packages' tests). Deprecated 'runTests'
UserHook to maintain compatibility with old packages, but encourage authors to
update to the new interface.
Commits on Jun 07, 2010
@ttuegel ttuegel Consistently using 'test suite' instead of 'testsuite'
Ticket #215 (Overhaul support for packages' tests).
Commits on Jun 08, 2010
@ttuegel ttuegel New test-suite stanza format with 'main-is' and 'test-module' fields
Ticket #215 (Overhaul support for packages' tests).  Using a new format for the
test-suite stanza in the .cabal file, similar to the source-repository stanza.
@ttuegel ttuegel Using safe 'runProcess' interface to run executable test suites
Ticket #215 (Overhaul support for packages' tests).  The use of the old
interface also makes it possible to log stdout and stderr without separating
the two.
@ttuegel ttuegel Producing more useful output when running test suites
Ticket #215 (Overhaul support for packages' tests).  The previous output format
made it difficult to distinguish successful test suites from failed test
@ttuegel ttuegel Updated test suite for new test suite stanza format
Ticket #215 (Overhaul support for packages' tests).
@noteed noteed --help shows first long option and added --hyperlink-sources
The --help option output now prints only the first (if any)
long option. Because of this, --{enable,disable}-optimisation
(british spelling) is simply added to the list of options
without testing showOrParseArgs. --hyperlink-sources is now
also accepted for the haddock command.
Commits on Jun 09, 2010
@ttuegel ttuegel Added QA checks for executable test suites
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Parsing TestSuite through intermediate data structure
Ticket #215 (Overhaul support for packages' tests).  By parsing the test suite
stanza through an intermediate data structure, we can isolate errors due to
missing required fields in the parsing stage and avoid having error handlers
througout the code.
Commits on Jun 11, 2010
@ezyang ezyang Mention self-referential dependency feature in Cabal >= 4a11301
Commits on Jun 12, 2010
@dcoutts dcoutts Merge the dylib-install-name patch e657766
Commits on Jun 15, 2010
@igfoo igfoo Use -fno-warn-deprecations in Distribution.Simple
Works around:
        Warning: In the use of `runTests'
                 (imported from Distribution.Simple.UserHooks):
                 Deprecated: "Please use the new testing interface instead!"
@igfoo igfoo Fix haddock syntax dc10c27
@igfoo igfoo Fix haddock syntax b4d46c3
@ttuegel ttuegel Added test suite output logging options
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Setting exit code indicating failure when one or more test suites fails
Ticket #215 (Overhaul support for packages' tests).
Commits on Jun 16, 2010
@dcoutts dcoutts Do not recognise the "executable" field inside an executable stanza
The executable field is only for the legacy pre-Cabal-1.2 stanza syntax.
@ttuegel ttuegel Added QA check requiring cabal-version: >= 1.9.2 for packages with te…
…st-suite stanzas

Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Removed extra "test-suite" field in test-suite stanza
Ticket #215 (Overhaul support for packages' tests).  Previously, the test-suite
stanza was allowed to contain a test-suite field, such as the executable stanza
parser allows.  This was removed because it is only required by legacy support
for executables and no legacy support is required for test suites.
Commits on Jun 17, 2010
@ttuegel ttuegel Added detailed test interface
Ticket #215 (Overhaul support for packages' tests).  This patch provides the
detailed test interface for exposing individual tests to Cabal and other test
agents.  It also provides the simple function Cabal will provide as the default
test runner.
Commits on Jun 20, 2010
@igfoo igfoo Fix warning 3f4e5d3
Commits on Jun 21, 2010
@ttuegel ttuegel Improved security of test log file creation
Ticket #215 (Overhaul support for packages' tests).  The algorithm previously
used to name the log files for test output suffers from a known vulnerability
due to the predictability of chosen names.
Commits on Jun 22, 2010
@ttuegel ttuegel Using path templates to name test log files
Ticket #215 (Overhaul support for packages' tests).
Commits on Jun 23, 2010
@ttuegel ttuegel Qualified import of Distribution.Simple.Setup in Distribution.Simple.…
@ttuegel ttuegel Added support for building detailed library test suites
Ticket #215 (Overhaul support for packages' tests).  This patch preprocesses
and builds library test suites.  The fake packages are created for each test
suite, where the fake package and test suite share the same name; the packages
and libraries are registered in the inplace package database so that test
agents can build stub executables against them.
@ttuegel ttuegel Removed dependency on extensible-exceptions from detailed test suite …

Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Added support for running the default stub executables Cabal creates …
…for library test suites

Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Added convenience functions and default instances making export of 'T…
…est' constructors unnecessary

Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Setting datadir environment variables when running tests
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Renamed 'result' and 'getResult' to 'run' and 'runM'
Ticket #215 (Overhaul support for packages' tests).
Commits on Jun 24, 2010
@ttuegel ttuegel Added --test-filter flag
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Improvements to library test suite runner, including documentation
Ticket #215 (Overhaul support for packages' tests).
Commits on Jun 29, 2010
@ttuegel ttuegel Fixed test suite breakage due to TestSuite API changes
Ticket #215 (Overhaul support for packages' tests).  The update to the
TestSuite parser which stopped disallowed configurations during parsing also
broke the existing test suite with API changes.
Commits on Jul 06, 2010
Atze Dijkstra Added flags related to UHC, uhcbase package 46b5706
Commits on Jul 07, 2010
@ttuegel ttuegel Inheriting existing environment for test suite executables
Ticket #215 (Overhaul support for packages' tests).  Previously, the test
runner replaced the environment for test suite executables with one containing
only the datadir path for package data files.  For test suites invoking other
programs, it is necessary to preserve the system paths, so the datadir path
variable is appended to the inherited environment.
Commits on Jul 08, 2010
@ttuegel ttuegel New test suite log format
Ticket #215 (Overhaul support for package's tests).  This patch adds a new test
log file format based on the TestSuiteLog data structure.  The interface between
Cabal and the library test suite runner has consequently changed.
Commits on Jul 12, 2010
@ttuegel ttuegel Added QA checks for test suite name conflicts
Ticket #215 (Overhaul suppport for packages' tests).
Commits on Jul 13, 2010
@ttuegel ttuegel Removed duplicate code for test suite interface version checks
Ticket #215 (Overhaul support for packages' tests).  Duplicate code for checking
the test suite interface version was replaced with a single function
'testVersion1 :: Version -> Bool' exported from Distribution.PackageDescription.
Commits on Jul 15, 2010
@ttuegel ttuegel Improvements to test suite logging
Ticket #215 (Overhaul support for packages' tests).  This patch includes proper
support for both machine- and human-readable logs.
@ttuegel ttuegel Saving Options from test runs for reproducability
Ticket #215 (Overhaul support for packages' tests).  Saving the Options used
required changes to the TestSuite interface, with the Option values now being
specified as Strings and not Dynamics.  This was necessary because the lack of
a Read instance for Dynamic.
Commits on Jul 20, 2010
@ttuegel ttuegel Added 'check' and 'optionLookup' to Distribution.TestSuite
Ticket #215 (Overhaul support for packages' tests).  These functions were added
for the benefit of test runner authors.
@ttuegel ttuegel Exporting machine log types from Distribution.Simple.Test
Ticket #215 (Overhaul support for packages' tests).  These types were exported
to enable parsing of test logs by external utilities.
@ttuegel ttuegel Using a separate PathTemplateEnv for machine test logs
Ticket #215 (Overhaul support for packages' tests).  Previously, the use of a
dummy test suite name would lead to unintuitive expansions of the PathTemplate
governing the location of the machine-readable package test log.
Commits on Jul 21, 2010
@ttuegel ttuegel Added clarifying comments to Distribution.Simple.Test
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Added flag allowing human-readable test logs to be appended instead o…
…f overwritten

Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Added console-style test summary information to human-readable logs
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Renamed Distribution.TestSuite.optionLookup to lookupOption
Ticket #215 (Overhaul support for packages' tests.)
@ttuegel ttuegel Fixed documentation errors in Distribution.Simple.Test
Ticket #215 (Overhaul support for packages' tests).
Commits on Jul 22, 2010
@ttuegel ttuegel Improved documentation for Distribution.TestSuite
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Added documentation for machine-readable test log types
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Using common function to name path environment variables in PathsModu…
…le and Test

Ticket #215 (Overhaul support for packages' tests).  The names of environment
variables used to set package paths at runtime were previously hard-coded into
the function that generates the paths module.  A function generating the
variable names is now exported from Distribution.Simple.Build.PathsModule and
used to set the datadir in Distribution.Simple.Test to prevent breakage if the
naming scheme changes.
Commits on Jul 24, 2010
@ttuegel ttuegel Catching exceptions when lifting pure tests to IO
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Fixed help message for machine-log path template
Ticket #215 (Overhaul support for packages' tests).  The message previously
indicated that $test-suite is acceptable in the machine log path template,
which is not true.
Commits on Jul 26, 2010
@ttuegel ttuegel Fixed deprecation warning in Distribution.TestSuite
Ticket #215 (Overhaul support for packages' tests).  Warning resulted from use
of Control.OldException.
@ttuegel ttuegel Passing names of test suites to run to test stage
Ticket #215 (Overhaul support for packages' tests).
Commits on Jul 27, 2010
@dcoutts dcoutts Fix old doc links 0ca2f2d
Commits on Jul 28, 2010
simonpj Add two local type signatures
I'm adding these type signatures to satisfy the "do not generalise
local let/where" rule that GHC is taking on.

The signatures are clearly correct, but I was surprised at the 
polymorphism needed.  For example

parseOptVersion :: ReadP r Version
parseOptVersion = parseQuoted ver <++ ver
  where ver :: ReadP r Version
        ver = parse <++ return noVersion
        noVersion = Version{ versionBranch=[], versionTags=[] }

Note that 'ver' really is called at two different types!  That 
in turn is because of the type of (<++)

  (<++) :: ReadP a a -> ReadP r a -> ReadP r a
  (+++) :: ReadP r a -> ReadP r a -> ReadP r a

Note the "a a" in the first arg, which is very unusual.
For example, compare the type of (+++).

Changing it to match the type of (+++) makes ReadP fail to compile,
though, so I assume it's right as it stands. But surely this deserves
a comment?!
Commits on Jul 29, 2010
@ttuegel ttuegel Displaying location of test suite log on terminal
Ticket #215 (Overhaul support for packages' tests).  It was decided that
indicating the location of the human-readable test suite log made Cabal's test
runner easier to use.
Commits on Jul 30, 2010
@ttuegel ttuegel Renamed option '--test-filter' to '--show-details'
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Using correct name of log file in human-readable log
Ticket #215 (Overhaul support for packages' tests).  Previously, human-readable
logs listed the name of the temporary file where test suite output is
initially logged.
@ttuegel ttuegel Added debugging output to test summary
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Displaying human-readable test log when requested
Ticket #215 (Overhaul support for packages' tests).  This patch causes Cabal to
display the contents of the human-readable log file on the terminal when run 
with --show-details=always or when run with --show-details=failures and a 
failure is detected.  The structure of the test logging code has been changed 
for clarity to debug a problem where test executables that write to their stderr 
channel disrupt terminal output.
Commits on Aug 03, 2010
@ttuegel ttuegel Fixed human test log output for failing tests
Ticket #215 (Overhaul support for packages' tests).  This patch corrects the bug
in the human test log output to terminal where the line wrapping code in Cabal
caused terminal control codes output by the test framework to be placed
incorrectly.  Line wrapping is no longer performed.
@ttuegel ttuegel Renamed "library" test suite type to "detailed"
Ticket #215 (Overhaul support for packages' tests).
@ttuegel ttuegel Added --replay option to cabal test
Ticket #215 (Overhaul support for packages' tests).  This patch adds support for
using machine logs from previous runs to replay tests with the same options.
When using --replay, Cabal will replay all test suites listed in the machine log
specified; test suite names specified on the command line are ignored.
Commits on Aug 05, 2010
@igfoo igfoo Add a space to the VERSION_pkg #defines
We were generating things like
    #define VERSION_ghc_prim""
rather than
    #define VERSION_ghc_prim ""
Commits on Aug 09, 2010
@ttuegel ttuegel Respect verbosity flag when outputting test log
Ticket #215 (Overhaul support for packages' tests).  This patch corrects the
printing of the human-readable test log to the terminal so the setting of the
verbosity flag is respected.
@ttuegel ttuegel Added --test-option(s) flags
Ticket #215 (Overhaul support for packages' tests).  This patch adds the
--test-option(s) flags for passing command-line options to test executables.
Commits on Aug 10, 2010
@ttuegel ttuegel Removed "$stdio" from acceptable template variables
Ticket #215 (Overhaul support for packages' tests).  In the usage message, the
template variable "$stdio" was incorrectly listed as being available in the
"--human-log" and "--machine-log" flags.  The variable has been removed.
Commits on Aug 11, 2010
@ttuegel ttuegel Added test suites to Cabal User Guide
Ticket #215 (Overhaul support for packages' tests).
Commits on Aug 16, 2010
@simonpj simonpj Type signature for local ioerror 9e0a051
Commits on Aug 20, 2010
@igfoo igfoo When looking for already pre-processed source files, check the build …

Fixes hscolour'ing Config.hs in GHC
@dcoutts dcoutts Add a note explaining the logic of Igloo's previous preprocessing change
We previously checked during preprocessing that there is some source
file for every module and produce a nice error message if not (rather
than having ghc --make fail later). We only looked for source files in
the source directories, ie not the target/output build dir, since the
build dir is where pre-processed files go, not original source files.
Igloo's change should allow builds where there is no original source file
at all, so long as there is some generated file in the build dir. In
particular this allows custom Setup.hs files to generate modules out of
thin air and for things to mostly work, even though the rest of the build
system is unaware about how the file got built.
Commits on Aug 23, 2010
@juhp juhp add a separator before the pid suffix to the tmpdir template
Currently Cabal just appends the pid to the package name-version
which makes it hard to see the actual package version number.
This patch just inserts a '-' between name-version and pid.
Commits on Aug 25, 2010
@adept adept Auto-reconfiguration when .cabal is newer than setup-config
This patch adds "ConfigFlags" to the "LocalBuildInfo" and reuses them to
perform "configureAction" when .cabal file is changed. This has
the same effect as re-running "configure" with the most recent used
set of options, which should be the sensible thing to do.

Closes #294, #477, #309 and #518.
Commits on Sep 03, 2010
@simonmar simonmar update for containers-0.4 e460672
Commits on Sep 17, 2010
@igfoo igfoo Bump dependencies 94134d3
Commits on Sep 23, 2010
@igfoo igfoo Bump Cabal version number to ee1150c
Atze Dijkstra initial support for building executables with UHC ebab9fb
Commits on Sep 26, 2010
@bmillwood bmillwood Document how Cabal-Version affects behaviour of build-depends 4f182e9
Commits on Oct 09, 2010
@dcoutts dcoutts Correct spelling of 'transative'
Original patch by:
  Thu Aug 21 21:19:51 MDT 2008
    * Correct spelling of 'transative'.
Re-recorded due to conflict.
@dcoutts dcoutts Fix processing of ghc-shared-options
Original patch was:
  Sun Oct  7 13:41:53 BST 2007  Thorkil Naur <>
    * Fix processing of shared options
Re-recorded due to code churn
Commits on Oct 10, 2010
@dcoutts dcoutts Fix release version number 2391dae
@dcoutts dcoutts TAG 1.10 branch forked cf1ff51
@dcoutts dcoutts Change how the test suite interfaces are represented, parsed and used
Also, stick to version 0.9 of the "detailed" test interface, since it's
not quite finalised yet. Misc other minor code cleanups.
@dcoutts dcoutts Remove redundant import de97b1b
@dcoutts dcoutts Update Makefile for new markdown user guide 07da6e6
@dcoutts dcoutts Minor changes to the auto-reconfiguration feature.
Change the messages slightly. Make configure return the
new lbi, rather than having to re-read the lbi from file
(avoiding potential infinite loop if the IO failed).
@dcoutts dcoutts More docs about the meaning of the cabal-version field ba5f9bd
@dcoutts dcoutts Rename LocalBuildInfo extraArgs to extraConfigArgs to avoid name clashes 93386b4
@dcoutts dcoutts Refactor the missing VCS info QA check
Starting with Marc Weber's code and just moving
it about and making it fit in a bit nicer.
@dcoutts dcoutts Add a bunch of TODOs about the test feature cc62230
Commits on Oct 12, 2010
@igfoo igfoo Fix duplicate import warnings c2a4ac1
Commits on Oct 13, 2010
@dcoutts dcoutts Change the syntax and behaviour of the cabal-version field
For historical reasons the cabal-version is specified with a version range,
to indicate the range of versions of tools that the package will work with.
We now think it makes more sense to specify the version of the Cabal spec
that the package follows. Old Cabal versions will not be able to parse simple
versions in this field. So we initially make the parser allow plain versions
but then we add a check to warn about using it prior to Cabal-1.12 at which
point it will be allowed.
Added a check about using version ranges that are not of the form '>= x.y'.
Also change behaviour to ignore upper bounds in the given version range.
@dcoutts dcoutts Default to Haskell98 for GHC 7.x
GHC 7 defaults to Haskell2010, we stick with 98 for the moment.
We will later introduce a new language field to control this.
@dcoutts dcoutts Disable the "detailed-0.9" interface in the Cabal-1.10.x branch
It needs a bit more work before it's ready for public consumption
@dcoutts dcoutts Check test-suite sections even when they have been disabled at config…
…ure time
@dcoutts dcoutts Update the message for a package check f34daea
@dcoutts dcoutts Add testsuites to the allBuildInfo function, used mainly in checks f283137
Commits on Oct 16, 2010
@dcoutts dcoutts Fix a cabal-version check so it accepts the field missing entirely 8fbb96e
@dcoutts dcoutts Add instance Text TestShowDetails parsing and use it for --show-detai…
…ls flag

Rather than Read/Show
@dcoutts dcoutts Remove the test --append-human-log and --replay features c31e45e
@dcoutts dcoutts Rename test --human-log to just --log
Still have --machine-log as a separate flag
@dcoutts dcoutts Update the unit tests of the testsuite feature 74481a2
@dcoutts dcoutts Restore compatability with ghc-6.8 and 6.6 but drop support for ghc-6.4 fb90358
@dcoutts dcoutts Change the way we handle the version number during bootstrapping
Means we only need to have the version in one place now. Yay.
Commits on Oct 17, 2010
@dcoutts dcoutts Remove unused cpp version definition 4f155ee
Commits on Oct 18, 2010
@dcoutts dcoutts Add a Language type, starting with Haskell98 and Haskell2010 cfe7eb5
@dcoutts dcoutts Extend the Compiler interface to list the supported languages 7e5ca5b
@dcoutts dcoutts Add new language and extensions fields (internal data structures)
New fields default-language and other-languages for specifying the
base languages for the package, e.g. Haskell98, Haskell2010
New fields default-extensions and other-extensions for the language
extensions. Separate from the old extensions field.
The separation lets us express the difference between declaring to
the outside world that a package uses certain languages or extensions
and whether certain languages or extensions should be applied to
all modules in the package component.
@dcoutts dcoutts Add parsing for the new language and extensions fields ecc3e1e
@dcoutts dcoutts Add hugs support for the languages and extensions fields
Incidentally, should fixe ticket #43.
@dcoutts dcoutts Add compiler support for using the new languages and extensions fields d2e2c7d
@dcoutts dcoutts Check at configure time that languages are supported by the compiler cdf35f1
@dcoutts dcoutts Add package QA checks for the new language and extensions fields 74c57e5
Commits on Oct 19, 2010
@dcoutts dcoutts Improve error messages about programs not being found
Make it clear it is a program we are talking about, not a library.
Commits on Oct 26, 2010
@igfoo igfoo Fix parsing of empty default-language fields 56d9782
Commits on Oct 27, 2010
@dcoutts dcoutts Add the newer extensions that GHC knows about
This is a different version of the patch from Cabal HEAD
because the representation of extensions is different.
@dcoutts dcoutts Fix a documentation reference to ghc 6.14 4b4ea90
Commits on Nov 05, 2010
@dcoutts dcoutts Export commandParseArgs a0dc697
Commits on Nov 16, 2010
@dcoutts dcoutts TAG 965b17b
Commits on Nov 17, 2010
@igfoo igfoo TAG GHC 7.0.1 release bfbc769
@igfoo igfoo TAG Cabal release 923ce66
Commits on Nov 18, 2010
@dcoutts dcoutts Update the changelog for, and e7a9ed5
Commits on Dec 04, 2010
@ttuegel ttuegel Document the '--{en,dis}able-tests' options in the User Guide f40f498
Commits on Dec 12, 2010
@igfoo igfoo Allow CABAL_VERSION to be defined when bootstrapping
Needed for the GHC build system
Commits on Dec 15, 2010
@igfoo igfoo Bump version to 8c77532
Commits on Dec 20, 2010
@igfoo igfoo Get extra gcc and ld flags from GHC 297053f
@ramsdell ramsdell sdist perms fix f924ffa
Commits on Jan 09, 2011
@ttuegel ttuegel Removed documentation for obsolete options to 'setup test' from the U…
…ser Guide.
Commits on Jan 11, 2011
@dcoutts dcoutts Clarify docs about LocalBuildInfo installedPkgs field
Only deps of current package, not all installed packages.
Confusion reported by quuuux on #haskell.
@tibbe tibbe Allow name template in --test-option and --test-options
Only $test-suite is supported for now.
@tibbe tibbe Support more placeholders in --test-option[s] template
Now supports $pkgid, $compiler, $os, $arch, and $test-suite.
Commits on Jan 14, 2011
@dcoutts dcoutts Use the standard names for file copy functions rather than a local re…
@dcoutts dcoutts Change my email address 3e8da5b
Commits on Jan 15, 2011
@igfoo igfoo Pass gcc/ld locations and flags to configure scripts
Flags are passed through the CFLAGS and LDFLAGS variables
@igfoo igfoo Fix import warnings 0663dc5
Commits on Jan 17, 2011
@dcoutts dcoutts Preserve executable bit during in sdist for extra-source-files 89e22e6
Commits on Jan 19, 2011
@ttuegel ttuegel Including test suites in product of 'setup sdist'.
See ticket #792.
Commits on Jan 24, 2011
@igfoo igfoo Follow changes in GHC's linker flag handling 027565a
Commits on Jan 25, 2011
@igfoo igfoo Look for hsc2hs in the same place as ghc
This is particularly important on OS X, where there may be both 32
and 64bit versions around.
Commits on Jan 29, 2011
@dcoutts dcoutts Relax QA check on test-suite sections to require only Cabal 1.8
Only Cabal-1.10 and later can use test suites. Versions of Cabal prior
to 1.8 actually barf on test-suite sections, while Cabal-1.8 will
ignore these sections with a warning. Previously the QA check enforced
that packages with test-suite section specify 'cabal-version: >= 1.10'
but strictly speaking we only need to require 'cabal-version: >= 1.8'.
This relaxation allows people to write packages using test suites such
that people using Cabal-1.8 will be able to build and install the
package, just not run the test suite. Clear as mud?
@dcoutts dcoutts Export a bunch of utils for package configurations 434c9fa
@dcoutts dcoutts MERGED: Tracking enabled/disabled TestSuites in PackageDescription.
Mon Jan 10 17:42:27 GMT 2011  Thomas Tuegel <>
  This patch adds the 'testEnabled' field to TestSuite. It's 
  undesirable to track build status information in the static package 
  description, but there is no better solution at this time. This 
  patch has the side-effect of fixing several TODOs in 
Commits on Jan 31, 2011
@dcoutts dcoutts Update copyright year 5b8fcd4
@dcoutts dcoutts Add changelog entry for version c2009ee
@dcoutts dcoutts Fix version number in Makefile 7c26a02
Commits on Feb 10, 2011
@dcoutts dcoutts Fix HcPkg.dump for the case of an empty database
Previously it returned the value [emptyInstalledPackageInfo]
Commits on Feb 27, 2011
@dcoutts dcoutts Fix release date in changelog 2a2d1ea
@dcoutts dcoutts Update release script for recent server changes 50af64f
Commits on Mar 03, 2011
@ttuegel ttuegel Remove log files before running tests by default. e872ec3
@igfoo igfoo TAG GHC 7.0.2 release a06643a
Commits on Mar 11, 2011
@dcoutts dcoutts Fix to build with ghc-6.6 and 6.8 ebd6691
Commits on Mar 30, 2011
@igfoo igfoo TAG GHC 7.0.3 release 83ba54d
Commits on Apr 17, 2011
@igfoo igfoo Refactor to avoid problems when $HOME is not set
We now avoid calling getWindowsProgramFilesDir and
getAppUserDataDirectory when we don't need to know their results.
This means that a GHC build goes through when $HOME is unset
(GHC trac #5047).
Commits on Apr 18, 2011
@ttuegel ttuegel Fix for test suite stanza with conditionals.
Ticket #811. This fixes a problem where Cabal would fail to detect the "type"
field of a test suite when the test suite contained a conditional.
Conditionals can now be used, with the restriction that the "type" field and
the appropriate "main-is" or "test-module" field must be specified together
in any conditional branch where they occur.
Commits on May 17, 2011
@dcoutts dcoutts Reimplement createDirectoryIfMissingVerbose to use sensible file perm…

Hopefully should fix ghc ticket #4982.
The problem was permissions on directories: previously we used ordinary
createDirectory and on unix this creates dirs using the current user's
umask. If the root user has a silly umask then someone doing sudo
install will end up with dirs that are not readable by non-root users.

So the solution is to do the same as we do with files: override the
umask and explicitly set the file permissions based on the kind of
file: ordinary file, executable file and now also directory.

Sadly we also had to re-implement createDirectoryIfMissing to use our
new createDirectory wrapper function.
Commits on May 29, 2011
@igfoo igfoo Bump version -> 16da69e
Commits on Jun 15, 2011
@igfoo igfoo TAG dfdd40b
@igfoo igfoo TAG GHC 7.0.4 release 877a325