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 compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
This comparison is big! We’re only showing the most recent 250 commits
Commits on Aug 01, 2007
@igfoo igfoo Cabal now depends on teh containers package 614fc40
Commits on Aug 06, 2007
@nominolo nominolo No longer fail to parse packages without any library or executable
sections.  Issue a warning instead.  (The previous error message
"Unexpected end of file" was not very helpful.)
@nominolo nominolo Cosmetic cleanup (fix line length) 187a93d
@nominolo nominolo Warn if no Cabal-version field is specified, but new syntax is used.
This isn't quite exact.  Ideally, we'd like to have something like
isEmptyRange (specified-range && >= 1.2) but implementing isEmptyRange
is non-trivial, so we'll go with this imperfect solution until we need
that feature elsewhere.
Commits on Aug 07, 2007
@nominolo nominolo Re-enable and update unit tests. 5866b29
@nominolo nominolo Fix translation of deprecated fields. Add test case. 441968b
@nominolo nominolo Fix error message. 275eab3
@nominolo nominolo Add a little documentation. f026a91
@dcoutts dcoutts Use String rather than importing a module just to misuse a String typ…
…e alias
@dcoutts dcoutts Add compilerExtensions field to Compiler and make each compiler fill …
…it in

It's just a list of supported extensions and the corresponding compiler flags.
For most compilers this is currently just a static list. For ghc 6.7 and above
we query ghc to find the list of language extensions it supports.
In each case the code has moved out into the compiler-specific modules and the
core code treats it generically.
The extensionsToFlags function has been split into two:
extensionsToFlags which now returns the flags for the supported extensions and
unsupportedExtensions which does what it says it does. This is because the two
roles of the previous function were always used separately, never together.
@dcoutts dcoutts remove unused local vars cfa1b6c
@dcoutts dcoutts Oops, fix deprecated Distribution.Extension module
it no longer exports the internal per-compiler extension to flags functions
as they are no longer exist and the equivalents are internal.
Commits on Aug 08, 2007
Magnus Jonsson Parse the output of ghc --supported-languages correctly 98bcf34
@dcoutts dcoutts Never generate empty language extension flags
Needed because some compilers support some language extensions by default
so need no flag to turn those extensions on.
Commits on Aug 09, 2007
Simon Marlow fix build with GHC 6.2.x 5cab857
Esa Ilari Vuokko Use existing parsers to handle ghc-pkg field output c5e5063
Commits on Aug 11, 2007
Esa Ilari Vuokko Explicit imports 62a7a3b
Esa Ilari Vuokko Clean up import ordering and format 06db111
Commits on Aug 12, 2007
@dcoutts dcoutts update ghc-pkg field parse error message f62e2d3
Commits on Aug 14, 2007
@dcoutts dcoutts ghc only supports the -x flag in 6.6 and above 2fd17f2
@dcoutts dcoutts Refactor the code for managing installation directories
New types for the collection of installation directory templates and a
separate type for the collection of actual real install FilePaths.
The templates are represented with a PathTemplate adt.
Dir templates can now be relative to each other, eg $htmldir to $docdir
Default install dir templates are now specified compactly in one place.
Adding new dirs should be considerably simpler than previously.
This patch should not actualy change where anything is installed.
Esa Ilari Vuokko Reorder, make explicit and beautify imports b2f27e8
Esa Ilari Vuokko Warning police: provide fallback pattern match 55ad9e9
Esa Ilari Vuokko Warning police: Remove unused statement and import b7ca62e
Esa Ilari Vuokko Warning police: Add type signatures and rename arg d8c5f3b
Esa Ilari Vuokko Fix Paths_pkg.hs generation 4e00464
Commits on Aug 16, 2007
@dcoutts dcoutts Add configure --docdir flag which defaults to "$datadir/doc/$pkgid"
Fixes bug #140
Esa Ilari Vuokko Make 'make tests' runnable again cea6ac2
Esa Ilari Vuokko Split ConfVar into ConfFlag and ConfVar c28e79a
Commits on Aug 17, 2007
@dcoutts dcoutts Add some extra functions to Compat.Map that we'll need later 45fa5e1
@dcoutts dcoutts Rewrite the Program abstraction and the ProgramConfiguration database
Also make the follow on changes to everything that uses Program.
The notion of a program is now split into the abstract notion of a program
that we know about and might be able to configure, and a configured program
that we can actually run. The ProgramConfiguration database is similarly
split. We still keep user-supplied loation and arguments and use them when
we configure programs. The abstract Program now has functions to search for
the program on the system and for finding the version number. This allows
for more generic configuration of programs.
@dcoutts dcoutts Add a sanity check that the ghc and ghc-pkg versions should be equal
This was easy to do now that Programs know how to find their version numbers.
@dcoutts dcoutts Make configure much less verbose by default and give useful output wi…
…th -v

This actually brings it into line with the other commands which do not produce
much output by default. It is very very quiet by default now though.
To make the -v output nice we have to lower the verbosity one notch in places.
@dcoutts dcoutts Trivial reformatting b7ec438
@dcoutts dcoutts We don't need a short option configure flag for selecting nhc
I don't think we need one for ghc either, but perhaps we shouldn't remove
that immediately as people might be using it. It's safe to remove -n now
becuase nobody is relying on it as nhc support is still incomplete.
Commits on Aug 19, 2007
@RossPaterson RossPaterson Hugs: get dropDrive from current version of filepath aa20bc7
@RossPaterson RossPaterson tweak #if's to avoid treating non-GHC as old GHC d1afb8f
Commits on Aug 22, 2007
@dcoutts dcoutts The prologue.txt is not needed for anything
The text from the description is now used for haddock
@dcoutts dcoutts The prologue.txt is not needed for anything
The text from the description is now used for haddock
Commits on Aug 23, 2007
@dcoutts dcoutts Fix register --gen-script
It's still useless on Windows.
@dcoutts dcoutts Swap haddock inplace/install dirs that were accidentally the wrong wa…
…y round
@dcoutts dcoutts Don't include the massive list of --with-prog --prog-args flags in he…
…lp text

Instead have just two generic ones in the help text and at the bottom,
list the programs that the flags apply to.
This still needs to be properly word wrapped to fit in 80 cols (as does the
rest of the help text).
@dcoutts dcoutts Make the GetOpt help text fit in 80 cols by wrapping the description
And reduce the padding slightly.
The configure help text look slightly less terrible now, though we've still
got too many long flags and short flags with long arg names so there's not
really enough width for the description so it wraps in too many cases.
@dcoutts dcoutts Wrap the configure help text program list and rename the prog arg tem…

Use "--with-PROG=" rather than "--with-<program>" since the other subsitution
bits like ARGS, PATH etc are upper case contractions. So it's more consistent.
@dcoutts dcoutts Hack to supress a warning when building Cabal
Normally we'd warn if using a new format cabal file and a cabal-version >= 1.2
field is not specified in the cabal file. However we cannot do this for cabal
itself or we'd not be able to bootstrap. So we just supress the warning for
the package "Cabal".
@dcoutts dcoutts Add a "build-tools:" field to the cabal file format
It's the same format as the build-depends, eg:
build-tools: cpphs, c2hs >= 0.15
During the configure step we try to configure the listed programs and
if a version range is specified then we check that it is satisfied.
Commits on Aug 24, 2007
@dcoutts dcoutts Remove unused --enable-haddock-use-packages flags
The feature they controled had been removed but
the --enable/disable flag had not been removed.
@dcoutts dcoutts Document lots of flags and the new build-tools: field
Document the following options:
--enable-library-for-ghci / --disable-library-for-ghc
--enable-library-vanilla / --disable-library-vanilla
--enable-split-objs / --disable-split-objs
--with-PROG= --PROG-args=
@dcoutts dcoutts Look for install-includes in . first, then in include-dirs
Since .h files listed in install-includes need not be in the include-dirs
search path at all.
@dcoutts dcoutts Only create includes and bin dirs if necessary
For includes, don't list the include dir in the package registration
info unless we're actually going to install some include files.
So we should create fewer pointless empty directories. See bug #97.
@dcoutts dcoutts Add install-includes .h files to the sdist tarball d5a809d
@dcoutts dcoutts Update documentation on install-includes field ba520cd
@dcoutts dcoutts Install any license file 480ac0b
@clefru clefru Import FilePath.dropDrive for hugs and GHC>6.6. In all other cases, p…
…rovide our own.
@clefru clefru Add docDirTemplate for inplace package config files 9f22c78
@clefru clefru Add --enable-shared as configure argument, and ghc-shared-options as …
….cabal field
@clefru clefru Add mkSharedLibName to D.Simple.Utils for DSO filename mangling 79c0aa3
@nominolo nominolo Remove the use of 'normalise' since it is currently broken (normalise
"./" => "/"!) and we don't need it that much, right now.
@clefru clefru Move GHC Makefile's .depend into dist/build aa516f2
@dcoutts dcoutts Change installation layout on Windows slightly
Make Haskell part of the default $prefix and make docs relative
to $prefix rather than $datadir which is fixed for libs.
Make the default fixed lib $datadir be Program Files\Haskell rather
than Common Files.
Commits on Aug 25, 2007
@dcoutts dcoutts remove unused imports 1159b8f
@dcoutts dcoutts correct copy'n'pasted comment 38b5c4f
@dcoutts dcoutts Use dllExtension rather than reimplementing it locally f3c31c7
Commits on Aug 26, 2007
@dcoutts dcoutts Move several modules under .Simple
Compiler, Program, PreProcess and Setup are really part of the Simple
build system.
Also move a couple GHC modules under Simple.GHC.*
Commits on Aug 28, 2007
@clefru clefru Add dynlibdir to InstallDirs 3d062e6
@dcoutts dcoutts Move defaultCompilerFlavor into Distribution.Compiler f275e0d
@dcoutts dcoutts Rename searchPath to findProgramOnPath e6d7cfc
@igfoo igfoo Rejig the register code a bit 7d2b30c
Commits on Aug 29, 2007
@dcoutts dcoutts More register cleanups to do with ghc-pkg args bb1d5d1
@dcoutts dcoutts Don't use the compilerProg and compilerPkgTool, use the ProgramConfig…

Except for reporting, we use the ProgramConfiguration directly.
Less duplication of information this way.
@dcoutts dcoutts Add rawSystemProgramStdout, the Program variant of rawSystemStdout 3857d0e
@dcoutts dcoutts Make getInstalledPackages use ProgramConfiguration rather than Compiler
These should be moved into the GHC and JHC modules, possibly with some
unifying version if that make sense.
@dcoutts dcoutts Remove compilerProg & compilerPkgTool from Compiler
This info is redundant since the compiler-specific code knows what
programs to run and it can get that from the ProgramConfiguration.
@dcoutts dcoutts Reorder configure message about what compiler we're using e3e460c
@igfoo igfoo Define delete in Distribution/Compat/Map.hs
Fixes the build with old GHCs.
Commits on Aug 30, 2007
@dcoutts dcoutts Make checking program versions not produce error spew
Redirect stderr to /dev/null (or NUL on windows) and throw an exception
like rawSystemExit does rather than calling die which prints an unhelpful
message before throwing an exception. It's not an overall failure to not
be able to establish the version of a program, since we check later if we
actually have any requirement for any particular version anyway.
So for example this makes running configure with an old version of c2hs
that doesn't grok --numeric-version not produce unhelpful output that
make people think that configure failed.
@dcoutts dcoutts Install license file into docdir rather than datadir 8046c81
@dcoutts dcoutts for c2hs, look for .chi files in dist/build rather than hs-src-dirs
Since when we run c2hs we put .chi files into dist/build so that's also
where we should be looking for them.
Commits on Aug 31, 2007
@RossPaterson RossPaterson track renaming of 441eb61
@RossPaterson RossPaterson fix 'Make checking program versions not produce error spew' for non-GHC 3dd90a7
@dcoutts dcoutts Update user guide on Windows installation paths, and add default for …
@dcoutts dcoutts Display the appropriate install messages for lib vs exes
Don't confuse users by suggesting that we're installing libs when we're
actually only installing exes, or vica-versa.
@dcoutts dcoutts Refactor the internal handling of the "--user" flag into a PackageDB …

PackageDB can be user/global or a specific package db. The latter option is
not exposed in the user interface anywhere.
Also move the getInstalledPackages into the per-compiler modules with a
non-compiler-specific wrapper left in Distribution.Simple.Configure
@dcoutts dcoutts Add util function allBuildInfo :: PackageDescription -> [BuildInfo]
The 'BuildInfo' for the library (if there is one and it's buildable)
and all the buildable executables. Useful for gathering dependencies.
@dcoutts dcoutts Move build-tools into the lib/exe stanzas and update configure
configure now has to gather the required build tools from the BuildInfo
of the lib and exes.
@dcoutts dcoutts Add a pkgconfig-depends: field to the .cabal file f7b16a6
@dcoutts dcoutts Use pkg-config to check for the packages specified in "pkgconfig-depe…

And fill out the includeDirs, extraLibs, extraLibDirs, ccOptions and ldOptions
with the results from pkg-config --cflags --libs
@dcoutts dcoutts Update the user guide on where the build-tools: field lives
It's now part of the build information rather than package description,
which is as it should be.
@dcoutts dcoutts Document the new "pkgconfig-depends:" field abd5cf3
@igfoo igfoo Don't pass docdir to ./configure, as older autoreconfs don't support it acf92f9
Commits on Sep 01, 2007
@RossPaterson RossPaterson Maintainer is now ed2d767
@dcoutts dcoutts Don't use normalise when parsing configure arguments fed5e4d
@dcoutts dcoutts Add --prog-arg= and make --prog-args parse quotes
So this provides two ways of passing options that contain embeded spaces:
--foo-args='--bar --baz="path with spaces in"'
--foo-arg=--bar --foo-arg=--baz="path with spaces in"
all args passed this way are collected in order.
@dcoutts dcoutts Pass --configure-option= options to configure in the right order
in the same order as they were passed to cabal configure on the command line
Commits on Sep 02, 2007
@dcoutts dcoutts Change --configure-option= to --configure-arg=
For consitency with other flags.
@igfoo igfoo Suppress some warnings d3c29d9
@igfoo igfoo Warning supression for Windows 0f004d6
@dcoutts dcoutts Change --configure-option= to --configure-arg=
For consitency with other flags.
@dcoutts dcoutts Rename --prog-args to --prog-options
amd --prog-arg to --prog-arg and update the user guide.
Commits on Sep 03, 2007
@dcoutts dcoutts Remove register --with-hc-pkg flag
It was just a hack for the benefit of ghc and we don't need it now.
@dcoutts dcoutts Make userSpecifyArgs update the args even if the prog is configured a…
@dcoutts dcoutts Generalise build --ghc-option flag to --prog-option for any prog
and remove makefile --ghc-option flag as it's not used (as far as I can see).
It works generically by updating the ProgramConfiguration rather than the
previous ad-hoc implementation. This feature is generally only useful for
hackers who want to pass extra args to a progam during the build step
(probably as a one-off) without having to reconfigure.
@dcoutts dcoutts Fix haddock markup
Thanks to int-e for reporting
@dcoutts dcoutts Oops, fix Distribution.Make ac89930
@dcoutts dcoutts Remove unused helper function
Ok to remove, it never appeared in any release.
Simon Marlow make this buildable with GHC 6.2.x 58a6836
Commits on Sep 05, 2007
@dcoutts dcoutts Rewrite the parser for the configuration structure to allow laout or …

Joint work with Thomas Schilling.
The sections and indeed fields (and if/else) can now use either explicit
brace {} style layout or indentation eg:
> library
>   exposed-modules: Blah
> library {
>   exposed-modules:
> }
layout style can be nested within explict braces style and vica versa.
Also add some more checks and relax the tab checks.
Unrecognised sections, like unrecognised fields, are not fatal errors,
so we could add sections in future without breaking old cabal.
Commits on Sep 06, 2007
@dcoutts dcoutts Update authors list in LICENSE and remove duplicate copyright file
We currently have 39 different authors, all those with a significant number
of patches are listed as copyright holders in the LICENSE file.
@dcoutts dcoutts Update changelog 14784b9
@dcoutts dcoutts Use layout rather than braces {} for sections in our own .cabal file
Since we can and we want to set a good example.
@dcoutts dcoutts Fix haddock markup 4da27e1
@dcoutts dcoutts Bump version number to 1.2.0 34abfe0
@dcoutts dcoutts note need to use -i when bootstrapping ghc, and update coders list b87ca33
@dcoutts dcoutts Remove now-empty dependencies dir
Not needed since cabal-install moved to another repo.
@dcoutts dcoutts TAG 1.2.0 6ffb2e2
Malcolm.Wallace nhc-options should be spelled nhc98-options 50609e0
Malcolm.Wallace Fix various mispellings of nhc98. c75898f
Malcolm.Wallace spell nhc98-options correctly 1280873
@igfoo igfoo TAG 2007-09-06 8d74a23
Malcolm.Wallace fix broken #ifdefs for nhc98 49586d0
Malcolm.Wallace fix type clash: Data.Version -> Distribution.Version 256a57e
@clefru clefru Add shared library building to GHC module (also via Makefile) 748a626
@clefru clefru Update D.S.GHC/Makefile.hs 1d16d42
Commits on Sep 07, 2007
Simon Marlow warning police cd256ed
Commits on Sep 11, 2007
@igfoo igfoo Don't forcibly append "pkgName (package pkg_descr)" to htmldir 6821345
Commits on Sep 12, 2007
@igfoo igfoo Add a --htmldir flag dd1b4c3
@igfoo igfoo Add htmlDirTemplate to inplaceDirs d9f2da4
@igfoo igfoo Fix haddockDir 7b6b86a
@dcoutts dcoutts Use confgurations to help build Cabal for ghc-6.2.x
Replacing a long-standing comment telling people how to do it manually.
@dcoutts dcoutts Don't create empty data dirs. Fixes bug #153.
Patch contributed by Sven Panne.
Simon Marlow use OPTIONS instead of OPTIONS_GHC for now, the latter doesn't work w…
…ith GHC 6.2.x
Commits on Sep 13, 2007
@igfoo igfoo Add a boring file 7dae1b1
@nominolo nominolo Display warning if sections are found within other sections. This
most likely represents an error (missing colon after field name).

This patch is only for the Cabal 1.2 branch; the proper fix requires
more complex changes.
Commits on Sep 17, 2007
@dcoutts dcoutts Put _stub.{c|h} files under dist/ so they'll get cleaned. Fixes bug #154

Only used with ghc-6.6 and later which supports the -stubdir flag.
With earlier ghc versions the files still end up in the src dirs and so do not
get cleaned.
@dcoutts dcoutts look in odir for source and .hs files, not buildDir lbi
odir = buildDir lbi for the lib case, which is why it worked most of the time
in testing but in the exe case it's a different dir.
@dcoutts dcoutts Correct the verbosity range in the "--help" text
The correct range in 0--3, not 0--2 or 0--5
@dcoutts dcoutts Put setup program and setup .o/.hi files into dist/setup
That way they get cleaned automatically and do not clutter the top dir.
@dcoutts dcoutts Pass on all the cabal-setup options to cabal, not just unrecognised ones
So for example -v and -w get passed on rather than swallowed by cabal-setup
@dcoutts dcoutts Note in .cabal file that we're using a custom build-type ad731ff
@dcoutts dcoutts Move expensive conviguration actions inside branch where they're used
We only need to configure the compiler and resolve any "Cabal-Version:"
dependency when we're actually going to compile the Setup.hs program.
We can otherwise save time by not calling ghc and ghc-pkg unnecessarily.
(I only noticed this because I've got >150 registered packages which
causes ghc and ghc-pkg to be very slow to start.)
Commits on Sep 20, 2007
@dcoutts dcoutts Add a Distribution.Setup module that re-exports Distribution.Simple.S…

Many Setup.hs files import Distribution.Setup so this unbreaks them.
It's marked DEPRECATED so will generate a warning for scripts that use it.
This patch is only going to the cabal-1.2 branch, not HEAD.
@igfoo igfoo Remove some now-unecessary cleaning that causes problems for haskell-src
The code that removes .hs files in the source tree generated from .y files
had a comment:
    XXX: This is actually no longer necessary, but we keep it, so that
    clean works correctly on packages built with an older version of Cabal
This was causing problems for source distributions that include such
generated files (including haskell-src in extralibs).
Commits on Sep 22, 2007
@dcoutts dcoutts Fix pre-processing for executables
The pre-processed files should go into the exe's build dir, not the
lib's build dir. Also pre-process main modules, fixing bug #14.
Commits on Sep 23, 2007
@igfoo igfoo Fix warnings 115af2d
Commits on Sep 24, 2007
@dcoutts dcoutts Don't generate links when dependent docs not installed. Fixes bug #157.
Generates a warning rather than failing as before.
Commits on Sep 25, 2007
@nominolo nominolo Translate flat files into sectionized files, by duplicating global
dependecies into each non-empty section.  The previous solution dumped
them into the library section, even if it would have been empty
@nominolo nominolo Improve error messages for failed sanity checks. ceabbae
@dcoutts dcoutts Be more fuzzy with os, arch and impl matching in conditions. Fixes bug

Do all the comparisons case insensitively and add some OS aliases so that
if os(windows)  works if the System.Info.os is actually "mingw32".
Commits on Sep 26, 2007
@dcoutts dcoutts The -stubdir flag is supported in ghc-6.6 not just 6.6.1 d01d5f2
@dcoutts dcoutts Actually -stubdir only works well in ghc-6.8 due to -I search dir mess
In ghc-6.6 the Foo/Bar.hc files only #include "Bar_stub.h" rather than
#include "Foo/Bar_stub.h". This means when we set the stubdir so that the
_stub.h files don't sit next to the .hs file then the include search path
is not right to find the _stub.h file. In ghc-6.8 this is fixed so that
it adds the -stubdir path to the include search path when calling gcc.
@clefru clefru Add -package-name to GHC invocation when linking DSOs 11f2319
Commits on Sep 27, 2007
@clefru clefru Add extra-libs to shared library linking 6f9694a
Commits on Oct 04, 2007
@bringert bringert Haddock comment for the available dependencies argument to finalizePa…
Commits on Oct 05, 2007
@bringert bringert Fix GenericPrackageDescription pretty printing to make it parsable. I…
…t still does not include all information.
@bringert bringert Expose parseDescription. 02f6cfd
Commits on Oct 06, 2007
@bringert bringert Rename parseDescription to parsePackageDescription.
This should be pushed to cabal-1.2 to make cabal-install work with 1.2.
@bringert bringert Remove commented-out code.
Push to 1.2.
Commits on Oct 11, 2007
@dcoutts dcoutts Use -O2 for compiling .c files when we configure --enable-optimization
Seems a reasonable default behaviour.
Commits on Oct 12, 2007
@dcoutts dcoutts Update documentation on configurations
Describe the new syntax and make variuous changes to the
description of the meaning.
@dcoutts dcoutts Add logging functions notice, info, debug functions and use them cons…

We previously had this kind of code all over the place:
> when (verbosity >= verbose)
>      (putStrLn "some message")
We now replace that with:
> info verbosity "some message"
Much nicer.
Commits on Oct 13, 2007
@bringert bringert Pass -w -v0 to ghc when compiling Setup.{lhs,hs} in SetupWrapper when…
… verbosity == silent.
@bringert bringert Change --verbosity= option of SetupWrapper (cabal-setup) to --verbose…
…=, since that is what the rest of Cabal uses.
@bringert bringert Pass -c (silent create) to ar when verbosity < normal. fc3012c
Commits on Oct 14, 2007
@dcoutts dcoutts Move ghcVerbosity function into GHC module to share code 424cb23
Commits on Oct 16, 2007
@dcoutts dcoutts Change the handling of cpp & ghc flags for hsc2hs
The hsc2hs that comes with ghc uses ghc as the C compiler. This means we must
escape the real cc flags. It also means we can ask ghc to add extra include
dirs that we might need to find includes of dependent packages. This is a bit
of a hack. In the longer term it'd be better for Cabal to collect the include
dirs and cc options of dependent packages and to pass them explicitly itself.
@bringert bringert When parsing ghc-pkg output, only look at the first package.conf file…
… for GlobalPackageDB and SpecificPackageDB, and all package.conf files for UserPackageDB.

Before, we would consider user packages when fulfilling dependencies
for global installs. ghc-pkg will refuse to install packages globally if they
use user packages. Thus, without this patch, global installs can fail when you have user packages installed.
Commits on Oct 17, 2007
@dcoutts dcoutts Figure out if hsc2hs is using gcc or ghc as it's C compiler
and pass the appropriate flags on the basis of knowing that.
This is a hack.
What we should do longer term is make hsc2hs always use gcc as it's C compiler
and have Cabal figure out the right flags to pass it, rather than using ghc
to pass on the appropriate flags to gcc.
@dcoutts dcoutts Add a "cpp-options:" field and use it for pre-processing .hs .hsc .ch…
…s files

This is for pre-processing Haskell modules, not for C code. We already have
cc-options for that purpose. Up 'til now people have been abusing ghc-options
for this purpose. Even Cabal itself was guilty of doing that.
@dcoutts dcoutts Use cpp-options rather than abusing ghc-options
Cabal-1.2 branch version of an equivalent patch in Cabal HEAD
@dcoutts dcoutts Bump minor version number to 1.2.1
We've added a couple minor features since 1.2.0
Commits on Oct 18, 2007
@dcoutts dcoutts Update changelog for 1.2.1 ae39153
@dcoutts dcoutts Correct the spelling of mingw32 in os alias list
@RossPaterson RossPaterson don't fail if xxx_hsc_make.c is gone
The non-GHC hsc2hs deletes it even if the compilation fails.
Simon Marlow FIX GHC bug #1785: use 2048 as the maximum command-line size
Apparently Solaris sets a limit of 2048 here
Commits on Oct 19, 2007
Simon Marlow refinement of fix for #1785: don't use xargs' -s option at all ac034ec
Commits on Oct 21, 2007
David Waern Add support for Haddock 2.0 d184b51
Commits on Oct 22, 2007
@RossPaterson RossPaterson typo in comment 6dc754f
Commits on Oct 23, 2007
@dcoutts dcoutts Be explicit about the base version dependency
don't just leave it up to the default search order
Simon Marlow Refuse to run any commands if the .cabal has been modified
See GHC bug #1372
This is a consistency check, intended to prevent this class of build

   * Package P is updated, its version number is bumped, the
     new version is compiled and installed.

   * Package Q depends on P.  Q is modified to use the new P, and Q's
     .cabal file is updated with changes to the build-depends field to
     depend on the new version of P.

   * The user has an old build of Q.  They pull the changes to Q and
     'setup build' without cleaning or re-configuring.  Build errors
     ensue, because the code of Q depends on changes to P's API, and
     we're still building against the old P.

Note that you can't get segfaults this way, only build errors.

This also relies on some new consistency checking in GHC 6.8 to work
properly.  If the user re-configures their Q build and then issues
'setup build' without cleaning, GHC must now realise that the package
flags have changed, and re-compile all the affected Q modules.  GHC
6.6 would not do this, but 6.8 does.
@dcoutts dcoutts Only use ld -x on systems where ld supports that.
Hopefully this fixes it for both ordinary builds and via ghc makefiles.
@dcoutts dcoutts Regenerate GHC/Makefile.hs from GHC/ eb158ad
@RossPaterson RossPaterson pass cpp-options to cpphs b0c4f23
Commits on Oct 24, 2007
@dcoutts dcoutts Create temp files in dist, since it is now guaranteed to exist 320bc55
@dcoutts dcoutts Create the dist/ dir early in the configuration process 50de1a4
@dcoutts dcoutts Compile a .c rather than a .hs file to make a .o file in ld -x config…
…ure test

Since when bootstrapping ghc we're not in any position to compile .hs files
that easily.
@dcoutts dcoutts Adjust verbosity of a step in configure b34f7d2
David Waern Fix a bug in the Unlit pre-processor
With this patch, unlit can handle line pragmas with filenames that contain
Commits on Oct 26, 2007
Simon Marlow fix XML (at least, makes it work here) c61588d
Simon Marlow fix $(TOP) 01dc33d
Simon Marlow put the binary-dist copy in the right place de87b40
@RossPaterson RossPaterson fix help text (--PROG-arg is now --PROG-option) 5a535ac
@RossPaterson RossPaterson no longer need to pass --ghc-pkg to haddock
Haddock only runs ghc-pkg if invoked with --use-package, and Cabal no
longer uses that option, as it now gets the arguments for --read-interface
from ghc-pkg directly (cf patch "rejig location of package interfaces
for haddock").
@RossPaterson RossPaterson no longer need to pass --allow-missing-html to haddock
This option only affects Haddock if it is invoked with --use-package,
and Cabal no longer uses that option, as it now gets the arguments for
--read-interface from ghc-pkg directly (cf patch "rejig location of
package interfaces for haddock").
Commits on Oct 29, 2007
@igfoo igfoo Add an interfacedir configure flag, for where to put haddock insterfa…
…ce files
Commits on Oct 30, 2007
@igfoo igfoo Install the haddock interface file to the right place a2b66d4
Commits on Nov 01, 2007
@dcoutts dcoutts Bump version number to
and update changelog
@dcoutts dcoutts TAG 5dbe6ca
Commits on Nov 05, 2007
Simon Marlow fix compilation with GHC 6.2.x 09a350b
Commits on Nov 08, 2007
@dcoutts dcoutts Add language extensions introduced in GHC 6.8 9478bf2
@dcoutts dcoutts Make the ld -x test use the temp dir rather than dist dir
Should fix cabal-install.
Commits on Nov 09, 2007
@dcoutts dcoutts Add extensions that ghc-6.6 supports e3cb6fb
@dcoutts dcoutts The extension is NoMonoPatBinds not MonoPatBinds 2607be5
David Waern Do proper pre-processing for Haddock 2
Besides pre-processing, this patch adds include paths and output paths
to the ghc flags passed to Hadddock.
Commits on Nov 10, 2007
@igfoo igfoo TAG GHC 6.8.1 release 016bea0
@igfoo igfoo Fix haddock interface file location used when registering inplace pac…

This fixes inter-package doc links when building GHC.
Commits on Nov 14, 2007
@dcoutts dcoutts Fix configure --interfacedir=
bug #178
Commits on Nov 15, 2007
@dcoutts dcoutts Bump version number to
and update changelog
Commits on Nov 16, 2007
@dcoutts dcoutts Export PreProcessor constructor and mkSimplePreProcessor
Otherwise it is impossible to declare new pre-processors in Setup.hs files
Commits on Nov 20, 2007
@dcoutts dcoutts Fix finding ghc's ld.exe on windows.
It looks like it had worked but the ld -x test broke that too. Grr.
Commits on Nov 23, 2007
Simon Marlow FIX BUILD with GHC 6.2: getTemporaryDirectory wasn't available 58eaea4
@dcoutts dcoutts Workaround import bug in nhc98
Cabal can now build using itself and nhc98
Commits on Nov 26, 2007
@igfoo igfoo Fix what looks like a doc braino bf0f775
@igfoo igfoo Escape some special characters in the haddock docs 1b9733b
@igfoo igfoo Fix a broken link 45319e0
@igfoo igfoo Escape some special characters 6413437
Commits on Nov 29, 2007
@dcoutts dcoutts Bump version to and update the changelog
There was one minor api addition which requires the minor version bump
Commits on Dec 02, 2007
@dcoutts dcoutts make rawSystemStdout put its temp files in the temp dir rather than cwd
Should fixe reported wierdness with finding program version numbers
Commits on Dec 06, 2007
@dcoutts dcoutts Use a default HsColour CSS if available
Supported in HsColour 1.9 and later
Commits on Dec 07, 2007
@dcoutts dcoutts Fix hscolour code so it only outputs the css once per-lib or exe
Rather than for every module in the lib. Tidy the code up a little too.
Commits on Dec 08, 2007
@dcoutts dcoutts Add more to the user guide intro trying to explain the scope and use …
Commits on Dec 09, 2007
David Waern Support --hyperlink-source for Haddock >= 2.0 2e8e254
Commits on Dec 10, 2007
@judah judah Add -framework arguments when linking executables. 17a50b2
Commits on Dec 12, 2007
@dcoutts dcoutts TAG 7c78e99
Commits on Dec 15, 2007
@igfoo igfoo TAG GHC 6.8.2 release 31f9987
Commits on Dec 27, 2007
@clefru clefru Fix haddock parse error ($prefix -> \$prefix) 20973e3
Commits on Dec 28, 2007
@dcoutts dcoutts Use getTemporaryDirectory from Distribution.Compat.Direcotry
for compatability with ghc-6.2.2
@dcoutts dcoutts Use os(windows) not os(win32) in user guide configurations example
Spotted by Spencer Janssen
Commits on Dec 31, 2007
@agl agl Ticket 176: Fix verbosity error to include the valid -v values c9f48c3
Commits on Jan 16, 2008
@igfoo igfoo Comment out an unused binding 7f18d1e
Commits on Jan 24, 2008
@dcoutts dcoutts Update user guide on reporting bugs and stability of cabal interfaces
Fixes ticket #11. Though the section could do with a bit more detail.
It corresponds to what's on the wiki:
Commits on Jan 25, 2008
@RossPaterson RossPaterson flush stdout before running subprograms
This is needed to separate Cabal and subprogram output if stdout is
buffered (e.g. a file), especially if stdout and stderr are the same.
Commits on Jan 26, 2008
@dcoutts dcoutts Remove examples dir which seemed rather pointless 83f31e3
@dcoutts dcoutts Simplify default Setup.hs example
make it a .hs like everyone else uses
@dcoutts dcoutts Remove the debian/ and debianTemplate/ files since they never get upd…

so they are almost certainly useless to the debian folks anyway.
Commits on Jan 31, 2008
@dcoutts dcoutts Use Setup.hs like everyone else does
and note the issue about custom vs simple build-type for Cabal itself.
@dcoutts dcoutts Find original sources for main-is when creating sdist
Also add a package sanity check that main-is must specify a .hs or .lhs file.
So the bahaviour is now that main-is specifies the main source file, even if
that is generated by a pre-processor. This isn't really a change in behaviour
since previously if you specified main-is: main.hsc then it would try to
pass the .hsc file to ghc dirctly which would not work. For ticket #14 things
were fixed to that it would look for main.hsc if you used main-is: main.hs an
that file did not exist directy. This completes the other half, of actually
being able to make a src distribution. So this should fix bug #217.
Note that this still needs some work, we do not run platform-independent
preprocessors and put the result into the tarball for main-is files.
Generally, main-is has been the second class citizen compared to normal
modules. We should try and refactor so both use the same code paths.
Commits on Feb 11, 2008
@dcoutts dcoutts Document main-is behaviour with preprocessors abff7be
Commits on Feb 22, 2008
@dcoutts dcoutts Remove the old attic file f682f36
Commits on Feb 23, 2008
@dcoutts dcoutts Make the user guide docbook xml validate 0fff0fb
Commits on Feb 25, 2008
@dcoutts dcoutts Specify in the user guide that .cabal files must be valid UTF-8 8d501d2
Commits on Mar 03, 2008
@nominolo nominolo Clarify commenting rule for package description files. 98462af
@nominolo nominolo Fix speling. 808a34e
Commits on Mar 07, 2008
@dcoutts dcoutts When generating default Setup.hs use defaultMain
not defaultMainWithHooks defaultUserHooks since the latter is deprecated
Commits on Mar 08, 2008
@dcoutts dcoutts Fix rejection of non-ambigious options
This GetOpt patch was sent the the libraries list by Eelis van der Weegen
with the explanation:
There is a bug in System.Console.GetOpt causing it to mistakenly reject
options as ambiguous. Example:
  optsDesc = [Option "" ["color", "colour"] (ReqArg id "color") ""]
  option `--col' is ambiguous; could be one of:
      --color=color, --colour=color  Foreground color
      --color=color, --colour=color  Foreground color
This error is silly, because the two alternatives listed are the same option.
Commits on Mar 27, 2008
@dcoutts dcoutts We do not show the field value on a parse error so don't pretend we do.
Drop the trailing ": " on the error message. We could provide the field
value but they're often multi-line and we cannot pin-point where the
error is exactly.
Commits on Apr 23, 2008
@dcoutts dcoutts When multiple specifying list fields in the same section combine them
eg if you had:
extensions: Foo
extensions: Bar, Baz
then previously we only ended up with [Bar, Baz]. Now we get them all.
Only applies to list fields, for single fields the second value is taken
and the first is silently discarded. This isn't good of course but the
fix is harder since we're not in a context where we can report errors.
Really we should just declare up front what kind of field it is and
inherit the right behaviour automagically, either duplicates disallowed
or allowed and combined with mappend.
Commits on Apr 27, 2008
@igfoo igfoo MERGED: fix 'clean' bug on windows caused by leaked Handle.
Andrea Vezzosi <>**20080318161237
 Using readFile to read dist/setup-config keeps the Handle open when we try to delete the file, causing an error. 
  So we instead read the file strictly and close the Handle early.
Commits on May 29, 2008
@dcoutts dcoutts Fix backport of 'Find original sources for main-is when creating sdist'
Required an extra util function.
@dcoutts dcoutts Bump version number to
And update the changelog.
There should be no incompatible API changes or incompatible
behaviour changes. There are a number of compatible API extensions
and behaviour fixes. In particular this gives us a limited amount of
forward compatabilty with Cabal-1.4, ie there are things that work
in 1.4 that would break with but should work with
Commits on Jun 18, 2008
@igfoo igfoo TAG b71e6c4