Cabal

A framework for packaging Haskell software http://www.haskell.org/cabal/

Version on this page:1.24.2.0
LTS Haskell 9.9:1.24.2.0
Stackage Nightly 2017-10-18:2.0.0.2
Latest on Hackage:2.0.0.2
BSD3 licensed by Cabal Development Team
Maintained by cabal-devel@haskell.org

Module documentation for 1.24.2.0

The Cabal library package

See the Cabal web site for more information.

If you also want the cabal command-line program, you need the cabal-install package in addition to this library.

Installing the Cabal library

If you already have the cabal program

In this case run:

$ cabal install

However, if you do not have an existing version of the cabal program, you first must install the Cabal library. To avoid this bootstrapping problem, you can install the Cabal library directly as described below.

Installing as a user (no root or administrator access)

ghc -threaded --make Setup
./Setup configure --user
./Setup build
./Setup install

Note the use of the --user flag at the configure step.

Compiling 'Setup' rather than using runghc Setup is much faster and works on Windows. For all packages other than Cabal itself, it is fine to use runghc.

This will install into $HOME/.cabal/ on Unix and into Documents and Settings\$User\Application Data\cabal\ on Windows. If you want to install elsewhere, use the --prefix= flag at the configure step.

Installing as root or Administrator

ghc -threaded --make Setup
./Setup configure
./Setup build
sudo ./Setup install

Compiling Setup rather than using runghc Setup is much faster and works on Windows. For all packages other than Cabal itself, it is fine to use runghc.

This will install into /usr/local on Unix, and on Windows it will install into $ProgramFiles/Haskell. If you want to install elsewhere, use the --prefix= flag at the configure step.

Using older versions of GHC and Cabal

It is recommended that you leave any pre-existing version of Cabal installed. In particular, it is essential you keep the version that came with GHC itself, since other installed packages require it (for instance, the "ghc" API package).

Prior to GHC 6.4.2, however, GHC did not deal particularly well with having multiple versions of packages installed at once. So if you are using GHC 6.4.1 or older and you have an older version of Cabal installed, you should probably remove it by running:

$ ghc-pkg unregister Cabal

or, if you had Cabal installed only for your user account, run:

$ ghc-pkg unregister Cabal --user

The filepath dependency

Cabal uses the filepath package, so it must be installed first. GHC version 6.6.1 and later come with filepath, however, earlier versions do not by default. If you do not already have filepath, you need to install it. You can use any existing version of Cabal to do that. If you have neither Cabal nor filepath, it is slightly harder but still possible.

Unpack Cabal and filepath into separate directories. For example:

tar -xzf filepath-1.1.0.0.tar.gz
tar -xzf Cabal-1.6.0.0.tar.gz

# rename to make the following instructions simpler:
mv filepath-1.1.0.0/ filepath/
mv Cabal-1.6.0.0/ Cabal/

cd Cabal
ghc -i../filepath -cpp --make Setup.hs -o ../filepath/setup
cd ../filepath/
./setup configure --user
./setup build
./setup install

This installs filepath so that you can install Cabal with the normal method.

More information

Please see the Cabal web site for the user guide and API documentation. There is additional information available on the development wiki.

Bugs

Please report bugs and feature requests to Cabal's bug tracker.

Your help

To help Cabal's development, it is enormously helpful to know from Cabal's users what their most pressing problems are with Cabal and Hackage. You may have a favourite Cabal bug or limitation. Look at Cabal's bug tracker. Ensure that the problem is reported there and adequately described. Comment on the issue to report how much of a problem the bug is for you. Subscribe to the issues's notifications to discussed requirements and keep informed on progress. For feature requests, it is helpful if there is a description of how you would expect to interact with the new feature.

Source code

You can get the master development branch using:

$ git clone https://github.com/haskell/cabal.git

Credits

Cabal developers (in alphabetical order):

  • Krasimir Angelov
  • Bjorn Bringert
  • Duncan Coutts
  • Isaac Jones
  • David Himmelstrup ("Lemmih")
  • Simon Marlow
  • Ross Patterson
  • Thomas Schilling
  • Martin Sj√∂gren
  • Malcolm Wallace
  • and nearly 30 other people have contributed occasional patches

Cabal specification authors:

  • Isaac Jones
  • Simon Marlow
  • Ross Patterson
  • Simon Peyton Jones
  • Malcolm Wallace

Changes

-*-change-log-*-

2.0.0.2 Mikhail Glushenkov <mikhail.glushenkov@gmail.com> July 2017
* The 2.0 migration guide gives advice on adapting Custom setup
scripts to backwards-incompatible changes in this release:
https://github.com/haskell/cabal/wiki/2.0-migration-guide
* Add CURRENT_PACKAGE_VERSION to cabal_macros.h (#4319)
* Dropped support for versions of GHC earlier than 6.12 (#3111).
* GHC compatibility window for the Cabal library has been extended
to five years (#3838).
* Convenience/internal libraries are now supported (#269).
An internal library is declared using the stanza "library
'libname'". Packages which use internal libraries can
result in multiple registrations; thus '--gen-pkg-config'
can now output a directory of registration scripts rather than
a single file.
* Backwards incompatible change to preprocessor interface:
the function in 'PPSuffixHandler' now takes an additional
'ComponentLocalBuildInfo' specifying the build information
of the component being preprocessed.
* Backwards incompatible change to 'cabal_macros.h' (#1893): we now
generate a macro file for each component which contains only
information about the direct dependencies of that component.
Consequently, 'dist/build/autogen/cabal_macros.h' contains
only the macros for the library, and is not generated if a
package has no library; to find the macros for an executable
named 'foobar', look in 'dist/build/foobar/autogen/cabal_macros.h'.
Similarly, if you used 'autogenModulesDir' you should now
use 'autogenComponentModulesDir', which now requires a
'ComponentLocalBuildInfo' argument as well in order to
disambiguate which component the autogenerated files are for.
* Backwards incompatible change to 'Component': 'TestSuite' and
'Benchmark' no longer have 'testEnabled' and
'benchmarkEnabled'. If you used
'enabledTests' or 'enabledBenchmarks', please instead use
'enabledTestLBIs' and 'enabledBenchLBIs'
(you will need a 'LocalBuildInfo' for these functions.)
Additionally, the semantics of 'withTest' and 'withBench'
have changed: they now iterate over all buildable
such components, regardless of whether or not they have
been enabled; if you only want enabled components,
use 'withTestLBI' and 'withBenchLBI'.
'finalizePackageDescription' is deprecated:
its replacement 'finalizePD' now takes an extra argument
'ComponentRequestedSpec' which specifies what components
are to be enabled: use this instead of modifying the
'Component' in a 'GenericPackageDescription'. (As
it's not possible now, 'finalizePackageDescription'
will assume tests/benchmarks are disabled.)
If you only need to test if a component is buildable
(i.e., it is marked buildable in the Cabal file)
use the new function 'componentBuildable'.
* Backwards incompatible change to 'PackageName' (#3896):
'PackageName' is now opaque; conversion to/from 'String' now works
via (old) 'unPackageName' and (new) 'mkPackageName' functions.
* Backwards incompatible change to 'ComponentId' (#3917):
'ComponentId' is now opaque; conversion to/from 'String' now works
via 'unComponentId' and 'mkComponentId' functions.
* Backwards incompatible change to 'AbiHash' (#3921):
'AbiHash' is now opaque; conversion to/from 'String' now works
via 'unAbiHash' and 'mkAbiHash' functions.
* Backwards incompatible change to 'FlagName' (#4062):
'FlagName' is now opaque; conversion to/from 'String' now works
via 'unFlagName' and 'mkFlagName' functions.
* Backwards incompatible change to 'Version' (#3905):
Version is now opaque; conversion to/from '[Int]' now works
via 'versionNumbers' and 'mkVersion' functions.
* Add support for `--allow-older` (dual to `--allow-newer`) (#3466)
* Improved an error message for process output decoding errors
(#3408).
* 'getComponentLocalBuildInfo', 'withComponentsInBuildOrder'
and 'componentsInBuildOrder' are deprecated in favor of a
new interface in "Distribution.Types.LocalBuildInfo".
* New 'autogen-modules' field. Modules that are built automatically at
setup, like Paths_PACKAGENAME or others created with a build-type
custom, appear on 'other-modules' for the Library, Executable,
Test-Suite or Benchmark stanzas or also on 'exposed-modules' for
libraries but are not really on the package when distributed. This
makes commands like sdist fail because the file is not found, so with
this new field modules that appear there are treated the same way as
Paths_PACKAGENAME was and there is no need to create complex build
hooks. Just add the module names on 'other-modules' and
'exposed-modules' as always and on the new 'autogen-modules' besides.
(#3656).
* New './Setup configure' flag '--cabal-file', allowing multiple
.cabal files in a single directory (#3553). Primarily intended for
internal use.
* Macros in 'cabal_macros.h' are now ifndef'd, so that they
don't cause an error if the macro is already defined. (#3041)
* './Setup configure' now accepts a single argument specifying
the component to be configured. The semantics of this mode
of operation are described in
<https://github.com/ghc-proposals/ghc-proposals/pull/4>
* Internal 'build-tools' dependencies are now added to PATH
upon invocation of GHC, so that they can be conveniently
used via `-pgmF`. (#1541)
* Add support for new caret-style version range operator `^>=` (#3705)
* Verbosity `-v` now takes an extended format which allows
specifying exactly what you want to be logged. The format is
"[silent|normal|verbose|debug] flags", where flags is a space
separated list of flags. At the moment, only the flags
+callsite and +callstack are supported; these report the
call site/stack of a logging output respectively (these
are only supported if Cabal is built with GHC 8.0/7.10.2
or greater, respectively).
* New `Distribution.Utils.ShortText.ShortText` type for representing
short text strings compactly (#3898)
* Cabal no longer supports using a version bound to disambiguate
between an internal and external package (#4020). This should
not affect many people, as this mode of use already did not
work with the dependency solver.
* Support for "foreign libraries" (#2540), which are Haskell
libraries intended to be used by foreign languages like C.
Foreign libraries only work with GHC 7.8 and later.
* Added a technical preview version of integrated doctest support (#4480).
* Added a new 'scope' field to the executable stanza. Executables
with 'scope: private' get installed into
$libexecdir/$libexecsubdir. Additionally $libexecdir now has a
subdir structure similar to $lib(sub)dir to allow installing
private executables of different packages and package versions
alongside one another. Private executables are those that are
expected to be run by other programs rather than users. (#3461)

1.24.0.0 Ryan Thomas <ryan@ryant.org> March 2016
* Support GHC 8.
* Deal with extra C sources from preprocessors (#238).
* Include cabal_macros.h when running c2hs (#2600).
* Don't recompile C sources unless needed (#2601).
* Read 'builddir' option from 'CABAL_BUILDDIR' environment variable.
* Add '--profiling-detail=$level' flag with a default for libraries
and executables of 'exported-functions' and 'toplevel-functions'
respectively (GHC's '-fprof-auto-{exported,top}' flags) (#193).
* New 'custom-setup' stanza to specify setup deps. Setup is also built
with the cabal_macros.h style macros, for conditional compilation.
* Support Haddock response files (#2746).
* Fixed a bug in the Text instance for Platform (#2862).
* New 'setup haddock' option: '--for-hackage' (#2852).
* New --show-detail=direct; like streaming, but allows the test
program to detect that is connected to a terminal, and works
reliable with a non-threaded runtime (#2911, and serves as a
work-around for #2398)
* Library support for multi-instance package DBs (#2948).
* Improved the './Setup configure' solver (#3082, #3076).
* The '--allow-newer' option can be now used with './Setup
configure' (#3163).
* Added a way to specify extra locations to find OS X frameworks
in ('extra-framework-dirs'). Can be used both in .cabal files and
as an argument to './Setup configure' (#3158).
* Macros 'VERSION_$pkgname' and 'MIN_VERSION_$pkgname' are now
also generated for the current package. (#3235).
* Backpack is supported! Two new fields supported in Cabal
files: signatures and mixins; and a new flag
to setup scripts, '--instantiate-with'. See
https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst
for more details.

1.22.0.0 Johan Tibell <johan.tibell@gmail.com> January 2015
* Support GHC 7.10.
* Experimental support for emitting DWARF debug info.
* Preliminary support for relocatable packages.
* Allow cabal to be used inside cabal exec enviroments.
* hpc: support mutliple "ways" (e.g. profiling and vanilla).
* Support GHCJS.
* Improved command line documentation.
* Add '-none' constraint syntax for version ranges (#2093).
* Make the default doc index file path compiler/arch/os-dependent
(#2136).
* Warn instead of dying when generating documentation and hscolour
isn't installed (455f51622fa38347db62197a04bb0fa5b928ff17).
* Support the new BinaryLiterals extension
(1f25ab3c5eff311ada73c6c987061b80e9bbebd9).
* Warn about 'ghc-prof-options: -auto-all' in 'cabal check' (#2162).
* Add preliminary support for multiple instances of the same package
version installed side-by-side (#2002).
* New binary build config format - faster build times (#2076).
* Support module thinning and renaming (#2038).
* Add a new license type: UnspecifiedLicense (#2141).
* Remove support for Hugs and nhc98 (#2168).
* Invoke 'tar' with '--formar ustar' if possible in 'sdist' (#1903).
* Replace --enable-library-coverage with --enable-coverage, which
enables program coverage for all components (#1945).
* Suggest that `ExitFailure 9` is probably due to memory
exhaustion (#1522).
* Drop support for Haddock < 2.0 (#1808, #1718).
* Make 'cabal test'/'cabal bench' build only what's needed for
running tests/benchmarks (#1821).
* Build shared libraries by default when linking executables dynamically.
* Build profiled libraries by default when profiling executables.

1.20.0.1 Johan Tibell <johan.tibell@gmail.com> May 2014
* Fix streaming test output.

1.20.0.0 Johan Tibell <johan.tibell@gmail.com> April 2014
* Rewrite user guide
* Fix repl Ctrl+C handling
* Add haskell-suite compiler support
* Add __HADDOCK_VERSION__ define
* Allow specifying exact dependency version using hash
* Rename extra-html-files to extra-doc-files
* Add parallel build support for GHC 7.8 and later
* Don't call ranlib on OS X
* Avoid re-linking executables, test suites, and benchmarks
unnecessarily, shortening build times
* Add --allow-newer which allows upper version bounds to be
ignored
* Add --enable-library-stripping
* Add command for freezing dependencies
* Allow repl to be used outside Cabal packages
* Add --require-sandbox
* Don't use --strip-unneeded on OS X or iOS
* Add new license-files field got additional licenses
* Fix if(solaris) on some Solaris versions
* Don't use -dylib-install-name on OS X with GHC > 7.8
* Add DragonFly as a known OS
* Improve pretty-printing of Cabal files
* Add test flag --show-details=streaming for real-time test output
* Add exec command

1.10.2.0 Duncan Coutts <duncan@community.haskell.org> June 2011
* Include test suites in cabal sdist
* Fix for conditionals in test suite stanzas in .cabal files
* Fix permissions of directories created during install
* Fix for global builds when $HOME env var is not set

1.10.1.0 Duncan Coutts <duncan@community.haskell.org> February 2011
* Improved error messages when test suites are not enabled
* Template parameters allowed in test --test-option(s) flag
* Improved documentation of the test feature
* Relaxed QA check on cabal-version when using test-suite sections
* haddock command now allows both --hoogle and --html at the same time
* Find ghc-version-specific instances of the hsc2hs program
* Preserve file executable permissions in sdist tarballs
* Pass gcc location and flags to ./configure scripts
* Get default gcc flags from ghc

1.10.0.0 Duncan Coutts <duncan@haskell.org> November 2010
* New cabal test feature
* Initial support for UHC
* New default-language and other-languages fields (e.g. Haskell98/2010)
* New default-extensions and other-extensions fields
* Deprecated extensions field (for packages using cabal-version >=1.10)
* Cabal-version field must now only be of the form ">= x.y"
* Removed deprecated --copy-prefix= feature
* Auto-reconfigure when .cabal file changes
* Workaround for haddock overwriting .hi and .o files when using TH
* Extra cpp flags used with hsc2hs and c2hs (-D${os}_BUILD_OS etc)
* New cpp define VERSION_<package> gives string version of dependencies
* User guide source now in markdown format for easier editing
* Improved checks and error messages for C libraries and headers
* Removed BSD4 from the list of suggested licenses
* Updated list of known language extensions
* Fix for include paths to allow C code to import FFI stub.h files
* Fix for intra-package dependencies on OSX
* Stricter checks on various bits of .cabal file syntax
* Minor fixes for c2hs

1.8.0.6 Duncan Coutts <duncan@haskell.org> June 2010
* Fix 'register --global/--user'

1.8.0.4 Duncan Coutts <duncan@haskell.org> March 2010
* Set dylib-install-name for dynalic libs on OSX
* Stricter configure check that compiler supports a package's extensions
* More configure-time warnings
* Hugs can compile Cabal lib again
* Default datadir now follows prefix on Windows
* Support for finding installed packages for hugs
* Cabal version macros now have proper parenthesis
* Reverted change to filter out deps of non-buildable components
* Fix for registering implace when using a specific package db
* Fix mismatch between $os and $arch path template variables
* Fix for finding ar.exe on Windows, always pick ghc's version
* Fix for intra-package dependencies with ghc-6.12

1.8.0.2 Duncan Coutts <duncan@haskell.org> December 2009
* Support for GHC-6.12
* New unique installed package IDs which use a package hash
* Allow executables to depend on the lib within the same package
* Dependencies for each component apply only to that component
(previously applied to all the other components too)
* Added new known license MIT and versioned GPL and LGPL
* More liberal package version range syntax
* Package registration files are now UTF8
* Support for LHC and JHC-0.7.2
* Deprecated RecordPuns extension in favour of NamedFieldPuns
* Deprecated PatternSignatures extension in favor of ScopedTypeVariables
* New VersionRange semantic view as a sequence of intervals
* Improved package quality checks
* Minor simplification in a couple Setup.hs hooks
* Beginnings of a unit level testsuite using QuickCheck
* Various bug fixes
* Various internal cleanups

1.6.0.2 Duncan Coutts <duncan@haskell.org> February 2009
* New configure-time check for C headers and libraries
* Added language extensions present in ghc-6.10
* Added support for NamedFieldPuns extension in ghc-6.8
* Fix in configure step for ghc-6.6 on Windows
* Fix warnings in Path_pkgname.hs module on Windows
* Fix for exotic flags in ld-options field
* Fix for using pkg-config in a package with a lib and an executable
* Fix for building haddock docs for exes that use the Paths module
* Fix for installing header files in subdirectories
* Fix for the case of building profiling libs but not ordinary libs
* Fix read-only attribute of installed files on Windows
* Ignore ghc -threaded flag when profiling in ghc-6.8 and older

1.6.0.1 Duncan Coutts <duncan@haskell.org> October 2008
* Export a compat function to help alex and happy

1.6.0.0 Duncan Coutts <duncan@haskell.org> October 2008
* Support for ghc-6.10
* Source control repositories can now be specified in .cabal files
* Bug report URLs can be now specified in .cabal files
* Wildcards now allowed in data-files and extra-source-files fields
* New syntactic sugar for dependencies "build-depends: foo ==1.2.*"
* New cabal_macros.h provides macros to test versions of dependencies
* Relocatable bindists now possible on unix via env vars
* New 'exposed' field allows packages to be not exposed by default
* Install dir flags can now use $os and $arch variables
* New --builddir flag allows multiple builds from a single sources dir
* cc-options now only apply to .c files, not for -fvia-C
* cc-options are not longer propagated to dependent packages
* The cpp/cc/ld-options fields no longer use ',' as a separator
* hsc2hs is now called using gcc instead of using ghc as gcc
* New api for manipulating sets and graphs of packages
* Internal api improvements and code cleanups
* Minor improvements to the user guide
* Miscellaneous minor bug fixes

1.4.0.2 Duncan Coutts <duncan@haskell.org> August 2008
* Fix executable stripping default
* Fix striping exes on OSX that export dynamic symbols (like ghc)
* Correct the order of arguments given by --prog-options=
* Fix corner case with overlapping user and global packages
* Fix for modules that use pre-processing and .hs-boot files
* Clarify some points in the user guide and readme text
* Fix verbosity flags passed to sub-command like haddock
* Fix sdist --snapshot
* Allow meta-packages that contain no modules or C code
* Make the generated Paths module -Wall clean on Windows

1.4.0.1 Duncan Coutts <duncan@haskell.org> June 2008
* Fix a bug which caused '.' to always be in the sources search path
* Haddock-2.2 and later do now support the --hoogle flag

1.4.0.0 Duncan Coutts <duncan@haskell.org> June 2008
* Rewritten command line handling support
* Command line completion with bash
* Better support for Haddock 2
* Improved support for nhc98
* Removed support for ghc-6.2
* Haddock markup in .lhs files now supported
* Default colour scheme for highlighted source code
* Default prefix for --user installs is now $HOME/.cabal
* All .cabal files are treaded as UTF-8 and must be valid
* Many checks added for common mistakes
* New --package-db= option for specific package databases
* Many internal changes to support cabal-install
* Stricter parsing for version strings, eg dissalows "1.05"
* Improved user guide introduction
* Programatica support removed
* New options --program-prefix/suffix allows eg versioned programs
* Support packages that use .hs-boot files
* Fix sdist for Main modules that require preprocessing
* New configure -O flag with optimisation level 0--2
* Provide access to "x-" extension fields through the Cabal api
* Added check for broken installed packages
* Added warning about using inconsistent versions of dependencies
* Strip binary executable files by default with an option to disable
* New options to add site-specific include and library search paths
* Lift the restriction that libraries must have exposed-modules
* Many bugs fixed.
* Many internal structural improvements and code cleanups

1.2.4.0 Duncan Coutts <duncan@haskell.org> June 2008
* Released with GHC 6.8.3
* Backported several fixes and minor improvements from Cabal-1.4
* Use a default colour scheme for sources with hscolour >=1.9
* Support --hyperlink-source for Haddock >= 2.0
* Fix for running in a non-writable directory
* Add OSX -framework arguments when linking executables
* Updates to the user guide
* Allow build-tools names to include + and _
* Export autoconfUserHooks and simpleUserHooks
* Export ccLdOptionsBuildInfo for Setup.hs scripts
* Export unionBuildInfo and make BuildInfo an instance of Monoid
* Fix to allow the 'main-is' module to use a pre-processor

1.2.3.0 Duncan Coutts <duncan@haskell.org> Nov 2007
* Released with GHC 6.8.2
* Includes full list of GHC language extensions
* Fix infamous "dist/conftest.c" bug
* Fix configure --interfacedir=
* Find ld.exe on Windows correctly
* Export PreProcessor constructor and mkSimplePreProcessor
* Fix minor bug in unlit code
* Fix some markup in the haddock docs

1.2.2.0 Duncan Coutts <duncan@haskell.org> Nov 2007
* Released with GHC 6.8.1
* Support haddock-2.0
* Support building DSOs with GHC
* Require reconfiguring if the .cabal file has changed
* Fix os(windows) configuration test
* Fix building documentation
* Fix building packages on Solaris
* Other minor bug fixes

1.2.1 Duncan Coutts <duncan@haskell.org> Oct 2007
* To be included in GHC 6.8.1
* New field "cpp-options" used when preprocessing Haskell modules
* Fixes for hsc2hs when using ghc
* C source code gets compiled with -O2 by default
* OS aliases, to allow os(windows) rather than requiring os(mingw32)
* Fix cleaning of 'stub' files
* Fix cabal-setup, command line ui that replaces "runhaskell Setup.hs"
* Build docs even when dependent packages docs are missing
* Allow the --html-dir to be specified at configure time
* Fix building with ghc-6.2
* Other minor bug fixes and build fixes

1.2.0 Duncan Coutts <duncan.coutts@worc.ox.ac.uk> Sept 2007
* To be included in GHC 6.8.x
* New configurations feature
* Can make haddock docs link to hilighted sources (with hscolour)
* New flag to allow linking to haddock docs on the web
* Supports pkg-config
* New field "build-tools" for tool dependencies
* Improved c2hs support
* Preprocessor output no longer clutters source dirs
* Separate "includes" and "install-includes" fields
* Makefile command to generate makefiles for building libs with GHC
* New --docdir configure flag
* Generic --with-prog --prog-args configure flags
* Better default installation paths on Windows
* Install paths can be specified relative to each other
* License files now installed
* Initial support for NHC (incomplete)
* Consistent treatment of verbosity
* Reduced verbosity of configure step by default
* Improved helpfulness of output messages
* Help output now clearer and fits in 80 columns
* New setup register --gen-pkg-config flag for distros
* Major internal refactoring, hooks api has changed
* Dozens of bug fixes

1.1.6.2 Duncan Coutts <duncan.coutts@worc.ox.ac.uk> May 2007
* Released with GHC 6.6.1
* Handle windows text file encoding for .cabal files
* Fix compiling a executable for profiling that uses Template Haskell
* Other minor bug fixes and user guide clarifications

1.1.6.1 Duncan Coutts <duncan.coutts@worc.ox.ac.uk> Oct 2006
* fix unlit code
* fix escaping in register.sh

1.1.6 Duncan Coutts <duncan.coutts@worc.ox.ac.uk> Oct 2006
* Released with GHC 6.6
* Added support for hoogle
* Allow profiling and normal builds of libs to be chosen indepentantly
* Default installation directories on Win32 changed
* Register haddock docs with ghc-pkg
* Get haddock to make hyperlinks to dependent package docs
* Added BangPatterns language extension
* Various bug fixes

1.1.4 Duncan Coutts <duncan.coutts@worc.ox.ac.uk> May 2006
* Released with GHC 6.4.2
* Better support for packages that need to install header files
* cabal-setup added, but not installed by default yet
* Implemented "setup register --inplace"
* Have packages exposed by default with ghc-6.2
* It is no longer necessary to run 'configure' before 'clean' or 'sdist'
* Added support for ghc's -split-objs
* Initial support for JHC
* Ignore extension fields in .cabal files (fields begining with "x-")
* Some changes to command hooks API to improve consistency
* Hugs support improvements
* Added GeneralisedNewtypeDeriving language extension
* Added cabal-version field
* Support hidden modules with haddock
* Internal code refactoring
* More bug fixes

1.1.3 Isaac Jones <ijones@syntaxpolice.org> Sept 2005
* WARNING: Interfaces not documented in the user's guide may
change in future releases.
* Move building of GHCi .o libs to the build phase rather than
register phase. (from Duncan Coutts)
* Use .tar.gz for source package extension
* Uses GHC instead of cpphs if the latter is not available
* Added experimental "command hooks" which completely override the
default behavior of a command.
* Some bugfixes

1.1.1 Isaac Jones <ijones@syntaxpolice.org> July 2005
* WARNING: Interfaces not documented in the user's guide may
change in future releases.
* Handles recursive modules for GHC 6.2 and GHC 6.4.
* Added "setup test" command (Used with UserHook)
* implemented handling of _stub.{c,h,o} files
* Added support for profiling
* Changed install prefix of libraries (pref/pkgname-version
to prefix/pkgname-version/compname-version)
* Added pattern guards as a language extension
* Moved some functionality to Language.Haskell.Extension
* Register / unregister .bat files for windows
* Exposed more of the API
* Added support for the hide-all-packages flag in GHC > 6.4
* Several bug fixes

1.0 Isaac Jones <ijones@syntaxpolice.org> March 11 2005
* Released with GHC 6.4, Hugs March 2005, and nhc98 1.18
* Some sanity checking

0.5 Isaac Jones <ijones@syntaxpolice.org> Wed Feb 19 2005
* WARNING: this is a pre-release and the interfaces are still
likely to change until we reach a 1.0 release.
* Hooks interfaces changed
* Added preprocessors to user hooks
* No more executable-modules or hidden-modules. Use
"other-modules" instead.
* Certain fields moved into BuildInfo, much refactoring
* extra-libs -> extra-libraries
* Added --gen-script to configure and unconfigure.
* modules-ghc (etc) now ghc-modules (etc)
* added new fields including "synopsis"
* Lots of bug fixes
* spaces can sometimes be used instead of commas
* A user manual has appeared (Thanks, ross!)
* for ghc 6.4, configures versionsed depends properly
* more features to ./setup haddock

0.4 Isaac Jones <ijones@syntaxpolice.org> Sun Jan 16 2005

* Much thanks to all the awesome fptools hackers who have been
working hard to build the Haskell Cabal!

* Interface Changes:

** WARNING: this is a pre-release and the interfaces are still
likely to change until we reach a 1.0 release.

** Instead of Package.description, you should name your
description files <something>.cabal. In particular, we suggest
that you name it <packagename>.cabal, but this is not enforced
(yet). Multiple .cabal files in the same directory is an error,
at least for now.

** ./setup install --install-prefix is gone. Use ./setup copy
--copy-prefix instead.

** The "Modules" field is gone. Use "hidden-modules",
"exposed-modules", and "executable-modules".

** Build-depends is now a package-only field, and can't go into
executable stanzas. Build-depends is a package-to-package
relationship.

** Some new fields. Use the Source.

* New Features

** Cabal is now included as a package in the CVS version of
fptools. That means it'll be released as "-package Cabal" in
future versions of the compilers, and if you are a bleeding-edge
user, you can grab it from the CVS repository with the compilers.

** Hugs compatibility and NHC98 compatibility should both be
improved.

** Hooks Interface / Autoconf compatibility: Most of the hooks
interface is hidden for now, because it's not finalized. I have
exposed only "defaultMainWithHooks" and "defaultUserHooks". This
allows you to use a ./configure script to preprocess
"foo.buildinfo", which gets merged with "foo.cabal". In future
releases, we'll expose UserHooks, but we're definitely going to
change the interface to those. The interface to the two functions
I've exposed should stay the same, though.

** ./setup haddock is a baby feature which pre-processes the
source code with hscpp and runs haddock on it. This is brand new
and hardly tested, so you get to knock it around and see what you
think.

** Some commands now actually implement verbosity.

** The preprocessors have been tested a bit more, and seem to work
OK. Please give feedback if you use these.

0.3 Isaac Jones <ijones@syntaxpolice.org> Sun Jan 16 2005
* Unstable snapshot release
* From now on, stable releases are even.

0.2 Isaac Jones <ijones@syntaxpolice.org>

* Adds more HUGS support and preprocessor support.
Used by 247 packages:
accelerate-llvm-native, api-tools, archlinux, archlinux-web, argon, ariadne, arith-encode, atuin, autoexporter, billeksah-forms, binembed, blubber-server, buildwrapper, bumper, cab, cabal2arch, cabal2doap, cabal2ebuild, cabal2ghci, cabal2nix, cabal2spec, cabal-audit, cabal-bounds, cabal-cargs, cabal-constraints, cabal-db, cabal-debian, cabal-dependency-licenses, cabal-dev, cabal-dir, cabal-doctest, cabal-file-th, cabal-ghc-dynflags, cabal-ghci, cabalgraph, cabal-helper, cabal-info, cabal-install, cabal-install-bundle, cabal-install-ghc72, cabal-install-ghc74, cabalish, cabal-lenses, cabal-macosx, cabalmdvrpm, cabal-progdeps, cabal-query, cabalQuery, cabal-rpm, cabalrpmdeps, cabal-setup, cabal-sort, cabal-test, cabal-test-compat, cabal-test-quickcheck, cabalvchk, capri, cblrepo, check-pvp, clr-inline, cmathml3, codex, configuration-tools, dash-haskell, Delta-Lambda, diagrams-haddock, diffcabal, DisTract, distribution-nixpkgs, dist-upload, docidx, dynamic-pp, Encode, enumeration, epic, exherbo-cabal, extract-dependencies, factory, fay-builder, feldspar-compiler, fficxx, fibon, find-source-files, fishfood, ghc-imported-from, ghc-options, ghc-pkg-autofix, ghc-pkg-lib, giak, git-sanity, git-vogue, gpah, graphmod, grm, gtk2hs-buildtools, hackage-db, hackage-diff, hackage-processing, hackage-proxy, hackager, hackage-repo-tool, hackage-security, hackage-server, hackage-whatsnew, hackmanager, haddock-leksah, haddock-test, haddocset, Haggressive, halberd, HaRe, haskell-docs, haskell-gi, haskell-packages, haskell-platform-test, haskell-tools-refactor, haskell-updater, hask-home, haste-compiler, HaTeX-meta, hdevtools, hdocs, hesh, hfmt, hgettext, highlight-versions, hinstaller, hledger-interest, hledger-irr, holy-project, hoobuddy, hoogle-index, hoppy-runtime, hpack, hpack-convert, hpage, HPath, hpc-coveralls, hsdev, hsenv, HSFFIG, hs-gen-iface, hskeleton, hslackbuilder, hslinks, hsql-mysql, hubris, HUnit-Plus, ide-backend-server, infinity, inline-java, iridium, jailbreak-cabal, jbi, jenga, language-nix, language-pig, legion-discovery, legion-discovery-client, leksah, leksah-server, lhc, licensor, liquidhaskell, liquidhaskell-cabal, llvm-pkg-config, lscabal, ltk, manatee-core, manatee-ircclient, markdown2svg, marmalade-upload, matlab, maybench, metaplug, module-management, mueval, music-util, network-address, opencv-raw, package-description-remote, package-o-tron, package-vt, packdeps, packunused, patch-image, pec, pgdl, phoityne, phoityne-vscode, pkggraph, plugins, precis, preprocess-haskell, preprocessor, project-m36, proto-lens-protoc, pubnub, regexchar, reload, rest-gen, Rlang-QQ, robin, roshask, rts-loader, sandman, sarsi, scion, scion-browser, seqaid, shake-cabal-build, shaker, shuffle, sound-collage, SourceGraph, sprinkles, squeeze, stack, stack2nix, stackage2nix, stackage-build-plan, stackage-curator, stackage-metadata, stackage-query, stackage-types, stack-run, standalone-haddock, staversion, sunlight, superdoc, TBC, testloop, thank-you-stars, trawl, treemap-html, treemap-html-tools, uuagc-cabal, virthualenv, vty-examples, yackage, yavie, yesod-bin, yesod-dsl, yes-precure5-command, yet-another-logger, zeroth, zifter-stack
comments powered byDisqus