1# 3.6.0.0 [Emily Pillmore](mailgo:emilypi@cohomolo.gy) August 2021
2  * See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.6.0.0.md
3
4# 3.4.0.0 [Oleg Grenrus](mailgo:oleg.grnerus@iki.fi) February 2021
5  * See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.4.0.0.md
6
7# 3.2.1.0 [Oleg Grenrus](mailto:oleg.grenris@iki.fi) October 2020
8  * Pass `cxx-options` with `-optcxx` for GHC >= 8.10
9  * Use process jobs when calling subprocesses
10  * Require custom-setup for `cabal-version: 1.24` and later
11  * Accept `linux-androideabi` as an alias for Android
12  * Fix ghci being launched before other sources are built
13  * Require cabal-versions >=1.25 to be exact
14
15# 3.2.0.0 [Herbert Valerio Riedel](mailto:hvr@gnu.org) April 2020
16  * Change free text `String` fields to use `ShortText` in package description
17    and installed package info.
18  * Split `Distribution.Types.Flag` and `Distribution.Types.ConfVar`
19    `Distribution.Types.GenericPackageDescription`.
20  * Add GHC-8.10 support, including new extensions to
21    `Language.Haskell.Extension`.
22  * Use more `NonEmpty` instead of ordinary lists.
23  * Add `Distribution.Utils.Structured` for fingeprinting `Binary` blobs.
24  * Add `null`, `length` and `unsafeFromUTF8BS` to `Distribution.Utils.ShortText`.
25  * Refactor `Distribution.Utils.IOData` module.
26  * Rename `Distribution.Compat.MD5` to `Distribution.Utils.MD5`.
27  * Add `safeHead`, `safeTail`, `safeLast` to `Distribution.Utils.Generic`.
28  * Add `unsnoc` and `unsnocNE` to `Distribution.Utils.Generic`.
29  * Add `Set'` modifier to `Distribution.Parsec.Newtypes`.
30  * Add `Distribution.Compat.Async`.
31
32# 3.0.2.0 [Herbert Valerio Riedel](mailto:hvr@gnu.org) April 2020
33  * Disallow spaces around colon `:` in Dependency `build-depends` syntax
34    ([#6538](https://github.com/haskell/cabal/pull/6538)).
35  * Make `configure` accept any `pkg-config --modversion` output
36    ([#6541](https://github.com/haskell/cabal/pull/6541)).
37
38# 3.0.1.0 [Herbert Valerio Riedel](mailto:hvr@gnu.org) April 2020
39  * Add GHC-8.8 flags to `normaliseGhcFlags`
40    ([#6379](https://github.com/haskell/cabal/pull/6379)).
41  * Typo fixes
42    ([#6372](https://github.com/haskell/cabal/pull/6372)).
43  * Limit version number parts to contain at most 9 digits
44    ([#6386](https://github.com/haskell/cabal/pull/6386)).
45  * Fix boundless sublibrary dependency parse failure
46    ([#5846](https://github.com/haskell/cabal/issues/5846)).
47  * `cabal check` verifies `cpp-options` more pedantically, allowing only
48    options starting with `-D` and `-U`.
49  * Don’t rebuild world when new ghc flags that affect how error
50    messages are presented is specified.
51  * Fix dropExeExtension behaviour on Windows
52    ([#6287](https://github.com/haskell/cabal/pull/6287)).
53
54# 3.0.0.0 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) August 2019
55  * The 3.0 migration guide gives advice on adapting Custom setup
56    scripts to backwards-incompatible changes in this release:
57    https://github.com/haskell/cabal/wiki/3.0-migration-guide.
58  * Due to [#5119](https://github.com/haskell/cabal/issues/5119), the
59    `cabal check` warning for bounds on internal libraries has been
60    disabled.
61  * Introduce set notation for `^>=` and `==` operators
62    ([#5906](https://github.com/haskell/cabal/pull/5906)).
63  * 'check' reports warnings for various ghc-\*-options fields separately
64    ([#5342](https://github.com/haskell/cabal/issues/5432)).
65  * `KnownExtension`: added new extensions `DerivingVia` and
66    `EmptyDataDeriving`.
67  * Add `extra-dynamic-library-flavours`, to specify extra dynamic library
68    flavours to build and install from a .cabal file.
69  * `autoconfUserHooks` now passes `--host=$HOST` when cross-compiling
70  * Introduce multiple public libraries feature
71    ([#5526](https://github.com/haskell/cabal/pull/5526)).
72    * New build-depends syntax
73    * Add a set of library components to the `Dependency` datatype
74    * New `visibility` field in the `library` stanza
75    * New `LibraryVisibility` field in `InstalledPackageInfo`
76    * New syntax for the `--dependency` Cabal flag
77  * Static linking
78    * Add `--enable-executable-static` flag for building fully
79      static executables (GHC's normal "statish" linking links
80      Haskell libraries statically, but libc and system dependencies
81      dynamically). This new flag links everything statically.
82    * Note you likely want to link against `musl` or another libc that
83      supports fully static linking;
84      [`glibc` has some issues](https://sourceware.org/glibc/wiki/FAQ#Even_statically_linked_programs_need_some_shared_libraries_which_is_not_acceptable_for_me.__What_can_I_do.3F)
85      with fully static linking.
86  * Fix corrupted config file header for non-ASCII package names
87    ([2557](https://github.com/haskell/cabal/issues/2557)).
88  * Extend `Distribution.Simple.Utils.rewriteFileEx` from ASCII to UTF-8 encoding.
89  * Change the arguments of `Newtype` class to better suit @DeriveAnyClass@ usage,
90    add default implementation in terms of `coerce` / `unsafeCoerce`.
91  * Implement support for response file arguments to defaultMain* and cabal-install.
92  * Uniformly provide 'Semigroup' instances for `base < 4.9` via `semigroups` package
93  * Implement `{cmm,asm}-{sources,options} buildinfo fields for
94    separate compilation of C-- and ASM source files (#6033).
95  * Setting `debug-info` now implies `library-stripping: False` and
96    `executable-stripping: False) ([#2702](https://github.com/haskell/cabal/issues/2702))
97  * `Setup.hs copy` and `install` now work in the presence of
98    `data-files` that use `**` syntax
99    ([#6125](https://github.com/haskell/cabal/issues/6125)).
100
101----
102
103### 2.4.1.1 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) December 2018
104
105  * Fix `--with-compiler` failing to locate compiler on Windows
106    ([#5753](https://github.com/haskell/cabal/pull/5753)).
107  * Cabal can once again be built with GHC 7.8 and 7.6
108    ([#5730](https://github.com/haskell/cabal/pull/5730)).
109
110### 2.4.1.0 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) November 2018
111
112  * Warnings in autogenerated files are now silenced
113    ([#5678](https://github.com/haskell/cabal/pull/5678)).
114  * Improved recompilation avoidance, especially when using GHC 8.6
115    ([#5589](https://github.com/haskell/cabal/pull/5589)).
116  * Do not error on empty packagedbs in `getInstalledPackages`
117    ([#5516](https://github.com/haskell/cabal/issues/5516)).
118
119
120### 2.4.0.1 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) September 2018
121
122  * Allow arguments to be passed to `Setup.hs haddock` for `build-type:configure`
123    ([#5503](https://github.com/haskell/cabal/issues/5503)).
124
125# 2.4.0.0 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) September 2018
126  * Due to [#5119](https://github.com/haskell/cabal/issues/5119), the
127    `cabal check` warning for bounds on internal libraries has been
128    disabled.
129  * `Distribution.Simple.Haddock` now checks to ensure that it
130    does not erroneously call Haddock with no target modules.
131    ([#5232](https://github.com/haskell/cabal/issues/5232),
132    [#5459](https://github.com/haskell/cabal/issues/5459)).
133  * Add `getting` (less general than `to`) Lens combinator,
134    `non`) and an optics to access the modules in a component
135    of a `PackageDescription` by the `ComponentName`:
136    `componentBuildInfo` and `componentModules`
137  * Linker `ld-options` are now passed to GHC as `-optl` options
138    ([#4925](https://github.com/haskell/cabal/pull/4925)).
139  * Add `readGhcEnvironmentFile` to parse GHC environment files.
140  * Drop support for GHC 7.4, since it is out of our support window
141    (and has been for over a year!)
142  * Deprecate `preSDist`, `sDistHook`, and `postSDist` in service of
143    `new-sdist`, since they violate key invariants of the new-build
144    ecosystem. Use `autogen-modules` and `build-tool-depends` instead.
145    ([#5389](https://github.com/haskell/cabal/pull/5389)).
146  * Added `--repl-options` flag to `Setup repl` used to pass flags to the
147    underlying repl without affecting the `LocalBuildInfo`
148    ([#4247](https://github.com/haskell/cabal/issues/4247),
149    [#5287](https://github.com/haskell/cabal/pull/5287))
150  * `KnownExtension`: added new extensions `BlockArguments`
151    ([#5101](https://github.com/haskell/cabal/issues/5101)),
152    `NumericUnderscores`
153    ([#5130]((https://github.com/haskell/cabal/issues/5130)),
154    `QuantifiedConstraints`, and `StarIsType`.
155  * `buildDepends` is removed from `PackageDescription`. It had long been
156    uselessly hanging about as top-level build-depends already got put
157    into per-component condition trees anyway. Now it's finally been put
158    out of its misery
159    ([#4383](https://github.com/haskell/cabal/issues/4283)).
160  * Added `Eta` to `CompilerFlavor` and to known compilers.
161  * `cabal haddock` now generates per-component documentation
162    ([#5226](https://github.com/haskell/cabal/issues/5226)).
163  * Wildcard improvements:
164    * Allow `**` wildcards in `data-files`, `extra-source-files` and
165      `extra-doc-files`. These allow a limited form of recursive
166      matching, and require `cabal-version: 2.4`.
167      ([#5284](https://github.com/haskell/cabal/issues/5284),
168      [#3178](https://github.com/haskell/cabal/issues/3178), et al.)
169    * With `cabal-version: 2.4`, when matching a wildcard, the
170      requirement for the full extension to match exactly has been
171      loosened. Instead, if the wildcard's extension is a suffix of the
172      file's extension, the file will be selected. For example,
173      previously `foo.en.html` would not match `*.html`, and
174      `foo.solaris.tar.gz` would not match `*.tar.gz`, but now both
175      do. This may lead to files unexpectedly being included by `sdist`;
176      please audit your package descriptions if you rely on this
177      behaviour to keep sensitive data out of distributed packages
178      ([#5372](https://github.com/haskell/cabal/pull/5372),
179      [#784](https://github.com/haskell/cabal/issues/784),
180      [#5057](https://github.com/haskell/cabal/issues/5057)).
181    * Wildcard syntax errors (misplaced `*`, etc), wildcards that
182      refer to missing directories, and wildcards that do not match
183      anything are now all detected by `cabal check`.
184    * Wildcard ('globbing') functions have been moved from
185      `Distribution.Simple.Utils` to `Distribution.Simple.Glob` and
186      have been refactored.
187  * Fixed `cxx-options` and `cxx-sources` buildinfo fields for
188    separate compilation of C++ source files to correctly build and link
189    non-library components ([#5309](https://github.com/haskell/cabal/issues/5309)).
190  * Reduced warnings generated by hsc2hs and c2hs when `cxx-options` field
191    is present in a component.
192  * `cabal check` now warns if `-j` is used in `ghc-options` in a Cabal
193    file. ([#5277](https://github.com/haskell/cabal/issues/5277))
194  * `install-includes` now works as expected with foreign libraries
195    ([#5302](https://github.com/haskell/cabal/issues/5299)).
196  * Removed support for JHC.
197  * Options listed in `ghc-options`, `cc-options`, `ld-options`,
198    `cxx-options`, `cpp-options` are not deduplicated anymore
199    ([#4449](https://github.com/haskell/cabal/issues/4449)).
200  * Deprecated `cabal hscolour` in favour of `cabal haddock --hyperlink-source` ([#5236](https://github.com/haskell/cabal/pull/5236/)).
201  * Recognize `powerpc64le` as architecture PPC64.
202  * Cabal now deduplicates more `-I` and `-L` and flags to avoid `E2BIG`
203    ([#5356](https://github.com/haskell/cabal/issues/5356)).
204  * With `build-type: configure`, avoid using backslashes to delimit
205    path components on Windows and warn about other unsafe characters
206    in the path to the source directory on all platforms
207    ([#5386](https://github.com/haskell/cabal/issues/5386)).
208  * `Distribution.PackageDescription.Check.checkPackageFiles` now
209    accepts a `Verbosity` argument.
210  * Added a parameter to
211    `Distribution.Backpack.ConfiguredComponent.toConfiguredComponent` in order to fix
212    [#5409](https://github.com/haskell/cabal/issues/5409).
213  * Partially silence `abi-depends` warnings
214    ([#5465](https://github.com/haskell/cabal/issues/5465)).
215  * Foreign libraries are now linked against the threaded RTS when the
216    'ghc-options: -threaded' flag is used
217    ([#5431](https://github.com/haskell/cabal/pull/5431)).
218  * Pass command line arguments to `hsc2hs` using response files when possible
219    ([#3122](https://github.com/haskell/cabal/issues/3122)).
220
221----
222
223## 2.2.0.1 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) March 2018
224
225  * Fix `checkPackageFiles` for relative directories ([#5206](https://github.com/haskell/cabal/issues/5206))
226
227
228# 2.2.0.0 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) March 2018
229
230  * The 2.2 migration guide gives advice on adapting Custom setup
231    scripts to backwards-incompatible changes in this release:
232    https://github.com/haskell/cabal/wiki/2.2-migration-guide.
233  * New Parsec-based parser for `.cabal` files is now the
234    default. This brings memory consumption and speed improvements, as
235    well as making new syntax extensions easier to implement.
236  * Support for common stanzas (#4751).
237  * Added elif-conditionals to `.cabal` syntax (#4750).
238  * The package license information can now be specified using the
239    SPDX syntax. This requires setting `cabal-version` to 2.2+ (#2547,
240    #5050).
241  * Support for GHC's numeric -g debug levels (#4673).
242  * Compilation with section splitting is now supported via the
243    `--enable-split-sections` flag (#4819)
244  * Fields with mandatory commas (e.g. build-depends) may now have a
245    leading or a trailing comma (either one, not both) (#4953)
246  * Added `virtual-modules` field, to allow modules that are not built
247    but registered (#4875).
248  * Use better defaulting for `build-type`; rename `PackageDescription`'s
249    `buildType` field to `buildTypeRaw` and introduce new `buildType`
250    function (#4958)
251  * `D.T.PackageDescription.allBuildInfo` now returns all build infos, not
252    only for buildable components (#5087).
253  * Removed `UnknownBuildType` constructor from `BuildType` (#5003).
254  * Added `HexFloatLiterals` to `KnownExtension`.
255  * Cabal will no longer try to build an empty set of `inputModules`
256    (#4890).
257  * `copyComponent` and `installIncludeFiles` will now look for
258    include headers in the build directory (`dist/build/...` by
259    default) as well (#4866).
260  * Added `cxx-options` and `cxx-sources` buildinfo fields for
261    separate compilation of C++ source files (#3700).
262  * Removed unused `--allow-newer`/`--allow-older` support from
263    `Setup configure` (#4527).
264  * Changed `FlagAssignment` to be an opaque `newtype` (#4849).
265  * Changed `rawSystemStdInOut` to use proper type to represent
266    binary and textual data; new `Distribution.Utils.IOData` module;
267    removed obsolete `startsWithBOM`, `fileHasBOM`, `fromUTF8`,
268    and `toUTF8` functions; add new `toUTF8BS`/`toUTF8LBS`
269    encoding functions. (#4666)
270  * Added a `cabal check` warning when the `.cabal` file name does
271    not match package name (#4592).
272  * The `ar` program now receives its arguments via a response file
273    (`@file`).  Old behaviour can be restored with
274    `--disable-response-files` argument to `configure` or
275    `install` (#4596).
276  * Added `.Lens` modules, with optics for package description data
277    types (#4701).
278  * Support for building with Win32 version 2.6 (#4835).
279  * Change `compilerExtensions` and `ghcOptExtensionMap` to contain
280    `Maybe Flag`s, since a supported extension can lack a flag (#4443).
281  * Pretty-printing of `.cabal` files is slightly different due to
282    parser changes. For an example, see
283    https://mail.haskell.org/pipermail/cabal-devel/2017-December/010414.html.
284  * `--hyperlink-source` now uses Haddock's hyperlinker backend when
285    Haddock is new enough, falling back to HsColour otherwise.
286  * `D.S.defaultHookedPackageDesc` has been deprecated in favour of
287    `D.S.findHookedPackageDesc` (#4874).
288  * `D.S.getHookedBuildInfo` now takes an additional parameter
289    specifying the build directory path (#4874).
290  * Emit warning when encountering unknown GHC versions (#415).
291
292### 2.0.1.1 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) December 2017
293
294  * Don't pass `other-modules` to stub executable for detailed-0.9
295  (#4918).
296  * Hpc: Use relative .mix search paths (#4917).
297
298## 2.0.1.0 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) November 2017
299
300  * Support for GHC's numeric -g debug levels (#4673).
301  * Added a new `Distribution.Verbosity.modifyVerbosity` combinator
302    (#4724).
303  * Added a new `cabal check` warning about unused, undeclared or
304    non-Unicode flags.  Also, it warns about leading dash, which is
305    unusable but accepted if it's unused in conditionals. (#4687)
306  * Modify `allBuildInfo` to include foreign library info (#4763).
307  * Documentation fixes.
308
309### 2.0.0.2 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) July 2017
310
311  * See http://coldwa.st/e/blog/2017-09-09-Cabal-2-0.html
312    for more detailed release notes.
313  * The 2.0 migration guide gives advice on adapting Custom setup
314    scripts to backwards-incompatible changes in this release:
315    https://github.com/haskell/cabal/wiki/2.0-migration-guide
316  * Add CURRENT_PACKAGE_VERSION to cabal_macros.h (#4319)
317  * Dropped support for versions of GHC earlier than 6.12 (#3111).
318  * GHC compatibility window for the Cabal library has been extended
319    to five years (#3838).
320  * Convenience/internal libraries are now supported (#269).
321    An internal library is declared using the stanza `library
322    'libname'`.  Packages which use internal libraries can
323    result in multiple registrations; thus `--gen-pkg-config`
324    can now output a directory of registration scripts rather than
325    a single file.
326  * Backwards incompatible change to preprocessor interface:
327    the function in `PPSuffixHandler` now takes an additional
328    `ComponentLocalBuildInfo` specifying the build information
329    of the component being preprocessed.
330  * Backwards incompatible change to `cabal_macros.h` (#1893): we now
331    generate a macro file for each component which contains only
332    information about the direct dependencies of that component.
333    Consequently, `dist/build/autogen/cabal_macros.h` contains
334    only the macros for the library, and is not generated if a
335    package has no library; to find the macros for an executable
336    named `foobar`, look in `dist/build/foobar/autogen/cabal_macros.h`.
337    Similarly, if you used `autogenModulesDir` you should now
338    use `autogenComponentModulesDir`, which now requires a
339    `ComponentLocalBuildInfo` argument as well in order to
340    disambiguate which component the autogenerated files are for.
341  * Backwards incompatible change to `Component`: `TestSuite` and
342    `Benchmark` no longer have `testEnabled` and
343    `benchmarkEnabled`.  If you used
344    `enabledTests` or `enabledBenchmarks`, please instead use
345    `enabledTestLBIs` and `enabledBenchLBIs`
346    (you will need a `LocalBuildInfo` for these functions.)
347    Additionally, the semantics of `withTest` and `withBench`
348    have changed: they now iterate over all buildable
349    such components, regardless of whether or not they have
350    been enabled; if you only want enabled components,
351    use `withTestLBI` and `withBenchLBI`.
352    `finalizePackageDescription` is deprecated:
353    its replacement `finalizePD` now takes an extra argument
354    `ComponentRequestedSpec` which specifies what components
355    are to be enabled: use this instead of modifying the
356    `Component` in a `GenericPackageDescription`.  (As
357    it's not possible now, `finalizePackageDescription`
358    will assume tests/benchmarks are disabled.)
359    If you only need to test if a component is buildable
360    (i.e., it is marked buildable in the Cabal file)
361    use the new function `componentBuildable`.
362  * Backwards incompatible change to `PackageName` (#3896):
363    `PackageName` is now opaque; conversion to/from `String` now works
364    via (old) `unPackageName` and (new) `mkPackageName` functions.
365  * Backwards incompatible change to `ComponentId` (#3917):
366    `ComponentId` is now opaque; conversion to/from `String` now works
367    via `unComponentId` and `mkComponentId` functions.
368  * Backwards incompatible change to `AbiHash` (#3921):
369    `AbiHash` is now opaque; conversion to/from `String` now works
370    via `unAbiHash` and `mkAbiHash` functions.
371  * Backwards incompatible change to `FlagName` (#4062):
372    `FlagName` is now opaque; conversion to/from `String` now works
373    via `unFlagName` and `mkFlagName` functions.
374  * Backwards incompatible change to `Version` (#3905):
375    Version is now opaque; conversion to/from `[Int]` now works
376    via `versionNumbers` and `mkVersion` functions.
377  * Add support for `--allow-older` (dual to `--allow-newer`) (#3466)
378  * Improved an error message for process output decoding errors
379  (#3408).
380  * `getComponentLocalBuildInfo`, `withComponentsInBuildOrder`
381    and `componentsInBuildOrder` are deprecated in favor of a
382    new interface in `Distribution.Types.LocalBuildInfo`.
383  * New `autogen-modules` field. Modules that are built automatically at
384    setup, like Paths_PACKAGENAME or others created with a build-type
385    custom, appear on `other-modules` for the Library, Executable,
386    Test-Suite or Benchmark stanzas or also on `exposed-modules` for
387    libraries but are not really on the package when distributed. This
388    makes commands like sdist fail because the file is not found, so with
389    this new field modules that appear there are treated the same way as
390    Paths_PACKAGENAME was and there is no need to create complex build
391    hooks. Just add the module names on `other-modules` and
392    `exposed-modules` as always and on the new `autogen-modules` besides.
393  (#3656).
394  * New `./Setup configure` flag `--cabal-file`, allowing multiple
395  `.cabal` files in a single directory (#3553). Primarily intended for
396  internal use.
397  * Macros in `cabal_macros.h` are now ifndef'd, so that they
398  don't cause an error if the macro is already defined. (#3041)
399  * `./Setup configure` now accepts a single argument specifying
400    the component to be configured.  The semantics of this mode
401    of operation are described in
402    <https://github.com/ghc-proposals/ghc-proposals/pull/4>
403  * Internal `build-tools` dependencies are now added to PATH
404    upon invocation of GHC, so that they can be conveniently
405    used via `-pgmF`. (#1541)
406  * Add support for new caret-style version range operator `^>=` (#3705)
407  * Verbosity `-v` now takes an extended format which allows
408    specifying exactly what you want to be logged.  The format is
409    `[silent|normal|verbose|debug] flags`, where flags is a space
410    separated list of flags. At the moment, only the flags
411    +callsite and +callstack are supported; these report the
412    call site/stack of a logging output respectively (these
413    are only supported if Cabal is built with GHC 8.0/7.10.2
414    or greater, respectively).
415  * New `Distribution.Utils.ShortText.ShortText` type for representing
416    short text strings compactly (#3898)
417  * Cabal no longer supports using a version bound to disambiguate
418    between an internal and external package (#4020).  This should
419    not affect many people, as this mode of use already did not
420    work with the dependency solver.
421  * Support for "foreign libraries" (#2540), which are Haskell
422    libraries intended to be used by foreign languages like C.
423    Foreign libraries only work with GHC 7.8 and later.
424  * Added a technical preview version of integrated doctest support (#4480).
425  * Added a new `scope` field to the executable stanza. Executables
426    with `scope: private` get installed into
427    $libexecdir/$libexecsubdir. Additionally $libexecdir now has a
428    subdir structure similar to $lib(sub)dir to allow installing
429    private executables of different packages and package versions
430    alongside one another.  Private executables are those that are
431    expected to be run by other programs rather than users. (#3461)
432
433## 1.24.2.0 [Mikhail Glushenkov](mailto:mikhail.glushenkov@gmail.com) December 2016
434  * Fixed a bug in the handling of non-buildable components (#4094).
435  * Reverted a PVP-noncompliant API change in 1.24.1.0 (#4123).
436  * Bumped the directory upper bound to < 1.4 (#4158).
437
438## 1.24.1.0 [Ryan Thomas](mailto:ryan@ryant.org) October 2016
439  * API addition: `differenceVersionRanges` (#3519).
440  * Fixed reexported-modules display mangling (#3928).
441  * Check that the correct cabal-version is specified when the
442  extra-doc-files field is present (#3825).
443  * Fixed an incorrect invocation of GetShortPathName that was
444  causing build failures on Windows (#3649).
445  * Linker flags are now set correctly on GHC >= 7.8 (#3443).
446
447# 1.24.0.0 [Ryan Thomas](mailto:ryan@ryant.org) March 2016
448  * Support GHC 8.
449  * Deal with extra C sources from preprocessors (#238).
450  * Include cabal_macros.h when running c2hs (#2600).
451  * Don't recompile C sources unless needed (#2601).
452  * Read `builddir` option from `CABAL_BUILDDIR` environment variable.
453  * Add `--profiling-detail=$level` flag with a default for libraries
454    and executables of `exported-functions` and `toplevel-functions`
455    respectively (GHC's `-fprof-auto-{exported,top}` flags) (#193).
456  * New `custom-setup` stanza to specify setup deps. Setup is also built
457    with the cabal_macros.h style macros, for conditional compilation.
458  * Support Haddock response files (#2746).
459  * Fixed a bug in the Text instance for Platform (#2862).
460  * New `setup haddock` option: `--for-hackage` (#2852).
461  * New `--show-detail=direct`; like streaming, but allows the test
462    program to detect that is connected to a terminal, and works
463    reliable with a non-threaded runtime (#2911, and serves as a
464    work-around for #2398)
465  * Library support for multi-instance package DBs (#2948).
466  * Improved the `./Setup configure` solver (#3082, #3076).
467  * The `--allow-newer` option can be now used with `./Setup
468  configure` (#3163).
469  * Added a way to specify extra locations to find OS X frameworks
470  in (`extra-framework-dirs`). Can be used both in `.cabal` files and
471  as an argument to `./Setup configure` (#3158).
472  * Macros `VERSION_$pkgname` and `MIN_VERSION_$pkgname` are now
473  also generated for the current package. (#3235).
474  * Backpack is supported!  Two new fields supported in Cabal
475  files: signatures and mixins; and a new flag
476  to setup scripts, `--instantiate-with`.  See
477  https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst
478  for more details.
479
480----
481
482## 1.22.8.0 [Ryan Thomas](mailto:ryan@ryant.org) March 2016
483  * Distribution.Simple.Setup: remove job cap. Fixes #3191.
484  * Check all object file suffixes for recompilation. Fixes #3128.
485  * Move source files under `src/`. Fixes #3003.
486
487## 1.22.7.0 [Ryan Thomas](mailto:ryan@ryant.org) January 2016
488  * Backport #3012 to the 1.22 branch
489  * Cabal.cabal: change build-type to Simple
490  * Add foldl' import
491  * The Cabal part for fully gcc-like response files
492
493## 1.22.6.0 [Ryan Thomas](mailto:ryan@ryant.org) December 2015
494  * Relax upper bound to allow upcoming binary-0.8
495
496## 1.22.5.0 [Ryan Thomas](mailto:ryan@ryant.org) November 2015
497  * Don't recompile C sources unless needed (#2601). (Luke Iannini)
498  * Support Haddock response files.
499  * Add frameworks when linking a dynamic library.
500
501## 1.22.4.0 [Ryan Thomas](mailto:ryan@ryant.org) June 2015
502  * Add libname install-dirs variable, use it by default. Fixes #2437. (Edward Z. Yang)
503  * Reduce temporary directory name length, fixes #2502. (Edward Z. Yang)
504  * Workaround for #2527. (Mikhail Glushenkov)
505
506## 1.22.3.0 [Ryan Thomas](mailto:ryan@ryant.org) April 2015
507  * Fix for the ghcjs-pkg version number handling (Luite Stegeman)
508  * filterConfigureFlags: filter more flags (Mikhail Glushenkov)
509  * Cabal check will fail on -fprof-auto passed as a ghc-option - Fixes #2479 (John Chee)
510
511## 1.22.2.0 [Ryan Thomas](mailto:ryan@ryant.org) March 2015
512  * Don't pass `--{en,dis}able-profiling` to old setup.
513  * Add -Wall police
514  * Fix dependencies on `old-time`
515  * Fix test interface detailed-0.9 with GHC 7.10
516  * Fix HPC tests with GHC 7.10
517  * Make sure to pass the package key to ghc
518  * Use `--package-{name|version}` when available for Haddock when available
519  * Put full package name and version in library names
520  * Fully specify package key format, so external tools can generate it.
521
522# 1.22.0.0 [Johan Tibell](mailto:johan.tibell@gmail.com) January 2015
523  * Support GHC 7.10.
524  * Experimental support for emitting DWARF debug info.
525  * Preliminary support for relocatable packages.
526  * Allow cabal to be used inside cabal exec environments.
527  * hpc: support multiple "ways" (e.g. profiling and vanilla).
528  * Support GHCJS.
529  * Improved command line documentation.
530  * Add `-none` constraint syntax for version ranges (#2093).
531  * Make the default doc index file path compiler/arch/os-dependent
532  (#2136).
533  * Warn instead of dying when generating documentation and hscolour
534  isn't installed (455f51622fa38347db62197a04bb0fa5b928ff17).
535  * Support the new BinaryLiterals extension
536  (1f25ab3c5eff311ada73c6c987061b80e9bbebd9).
537  * Warn about `ghc-prof-options: -auto-all` in `cabal check` (#2162).
538  * Add preliminary support for multiple instances of the same package
539  version installed side-by-side (#2002).
540  * New binary build config format - faster build times (#2076).
541  * Support module thinning and renaming (#2038).
542  * Add a new license type: UnspecifiedLicense (#2141).
543  * Remove support for Hugs and nhc98 (#2168).
544  * Invoke `tar` with `--formar ustar` if possible in `sdist` (#1903).
545  * Replace `--enable-library-coverage` with `--enable-coverage`, which
546  enables program coverage for all components (#1945).
547  * Suggest that `ExitFailure 9` is probably due to memory
548  exhaustion (#1522).
549  * Drop support for Haddock < 2.0 (#1808, #1718).
550  * Make `cabal test`/`cabal bench` build only what's needed for
551  running tests/benchmarks (#1821).
552  * Build shared libraries by default when linking executables dynamically.
553  * Build profiled libraries by default when profiling executables.
554
555----
556
557### 1.20.0.4 [Ryan Thomas](mailto:ryan@ryant.org) January 2016
558  * Cabal.cabal: change build-type to Simple.
559
560### 1.20.0.1 [Johan Tibell](mailto:johan.tibell@gmail.com) May 2014
561  * Fix streaming test output.
562
563# 1.20.0.0 [Johan Tibell](mailto:johan.tibell@gmail.com) April 2014
564  * Rewrite user guide
565  * Fix repl Ctrl+C handling
566  * Add haskell-suite compiler support
567  * Add __HADDOCK_VERSION__ define
568  * Allow specifying exact dependency version using hash
569  * Rename extra-html-files to extra-doc-files
570  * Add parallel build support for GHC 7.8 and later
571  * Don't call ranlib on OS X
572  * Avoid re-linking executables, test suites, and benchmarks
573  unnecessarily, shortening build times
574  * Add `--allow-newer` which allows upper version bounds to be
575  ignored
576  * Add `--enable-library-stripping`
577  * Add command for freezing dependencies
578  * Allow repl to be used outside Cabal packages
579  * Add `--require-sandbox`
580  * Don't use `--strip-unneeded` on OS X or iOS
581  * Add new license-files field got additional licenses
582  * Fix if(solaris) on some Solaris versions
583  * Don't use -dylib-install-name on OS X with GHC > 7.8
584  * Add DragonFly as a known OS
585  * Improve pretty-printing of Cabal files
586  * Add test flag `--show-details=streaming` for real-time test output
587  * Add exec command
588
589----
590
591## 1.10.2.0 [Duncan Coutts](mailto:duncan@community.haskell.org) June 2011
592  * Include test suites in cabal sdist
593  * Fix for conditionals in test suite stanzas in `.cabal` files
594  * Fix permissions of directories created during install
595  * Fix for global builds when $HOME env var is not set
596
597## 1.10.1.0 [Duncan Coutts](mailto:duncan@community.haskell.org) February 2011
598  * Improved error messages when test suites are not enabled
599  * Template parameters allowed in test `--test-option(s)` flag
600  * Improved documentation of the test feature
601  * Relaxed QA check on cabal-version when using test-suite sections
602  * `haddock` command now allows both `--hoogle` and `--html` at the same time
603  * Find ghc-version-specific instances of the hsc2hs program
604  * Preserve file executable permissions in sdist tarballs
605  * Pass gcc location and flags to ./configure scripts
606  * Get default gcc flags from ghc
607
608# 1.10.0.0 [Duncan Coutts](mailto:duncan@haskell.org) November 2010
609  * New cabal test feature
610  * Initial support for UHC
611  * New default-language and other-languages fields (e.g. Haskell98/2010)
612  * New default-extensions and other-extensions fields
613  * Deprecated extensions field (for packages using cabal-version >=1.10)
614  * Cabal-version field must now only be of the form `>= x.y`
615  * Removed deprecated `--copy-prefix=` feature
616  * Auto-reconfigure when `.cabal` file changes
617  * Workaround for haddock overwriting .hi and .o files when using TH
618  * Extra cpp flags used with hsc2hs and c2hs (-D${os}_BUILD_OS etc)
619  * New cpp define VERSION_<package> gives string version of dependencies
620  * User guide source now in markdown format for easier editing
621  * Improved checks and error messages for C libraries and headers
622  * Removed BSD4 from the list of suggested licenses
623  * Updated list of known language extensions
624  * Fix for include paths to allow C code to import FFI stub.h files
625  * Fix for intra-package dependencies on OSX
626  * Stricter checks on various bits of `.cabal` file syntax
627  * Minor fixes for c2hs
628
629----
630
631### 1.8.0.6 [Duncan Coutts](mailto:duncan@haskell.org) June 2010
632  * Fix `register --global/--user`
633
634### 1.8.0.4 [Duncan Coutts](mailto:duncan@haskell.org) March 2010
635  * Set dylib-install-name for dynalic libs on OSX
636  * Stricter configure check that compiler supports a package's extensions
637  * More configure-time warnings
638  * Hugs can compile Cabal lib again
639  * Default datadir now follows prefix on Windows
640  * Support for finding installed packages for hugs
641  * Cabal version macros now have proper parenthesis
642  * Reverted change to filter out deps of non-buildable components
643  * Fix for registering inplace when using a specific package db
644  * Fix mismatch between $os and $arch path template variables
645  * Fix for finding ar.exe on Windows, always pick ghc's version
646  * Fix for intra-package dependencies with ghc-6.12
647
648# 1.8.0.2 [Duncan Coutts](mailto:duncan@haskell.org) December 2009
649  * Support for GHC-6.12
650  * New unique installed package IDs which use a package hash
651  * Allow executables to depend on the lib within the same package
652  * Dependencies for each component apply only to that component
653    (previously applied to all the other components too)
654  * Added new known license MIT and versioned GPL and LGPL
655  * More liberal package version range syntax
656  * Package registration files are now UTF8
657  * Support for LHC and JHC-0.7.2
658  * Deprecated RecordPuns extension in favour of NamedFieldPuns
659  * Deprecated PatternSignatures extension in favor of ScopedTypeVariables
660  * New VersionRange semantic view as a sequence of intervals
661  * Improved package quality checks
662  * Minor simplification in a couple `Setup.hs` hooks
663  * Beginnings of a unit level testsuite using QuickCheck
664  * Various bug fixes
665  * Various internal cleanups
666
667----
668
669### 1.6.0.2 [Duncan Coutts](mailto:duncan@haskell.org) February 2009
670  * New configure-time check for C headers and libraries
671  * Added language extensions present in ghc-6.10
672  * Added support for NamedFieldPuns extension in ghc-6.8
673  * Fix in configure step for ghc-6.6 on Windows
674  * Fix warnings in `Path_pkgname.hs` module on Windows
675  * Fix for exotic flags in ld-options field
676  * Fix for using pkg-config in a package with a lib and an executable
677  * Fix for building haddock docs for exes that use the Paths module
678  * Fix for installing header files in subdirectories
679  * Fix for the case of building profiling libs but not ordinary libs
680  * Fix read-only attribute of installed files on Windows
681  * Ignore ghc -threaded flag when profiling in ghc-6.8 and older
682
683### 1.6.0.1 [Duncan Coutts](mailto:duncan@haskell.org) October 2008
684  * Export a compat function to help alex and happy
685
686# 1.6.0.0 [Duncan Coutts](mailto:duncan@haskell.org) October 2008
687  * Support for ghc-6.10
688  * Source control repositories can now be specified in `.cabal` files
689  * Bug report URLs can be now specified in `.cabal` files
690  * Wildcards now allowed in data-files and extra-source-files fields
691  * New syntactic sugar for dependencies `build-depends: foo ==1.2.*`
692  * New cabal_macros.h provides macros to test versions of dependencies
693  * Relocatable bindists now possible on unix via env vars
694  * New `exposed` field allows packages to be not exposed by default
695  * Install dir flags can now use $os and $arch variables
696  * New `--builddir` flag allows multiple builds from a single sources dir
697  * cc-options now only apply to .c files, not for -fvia-C
698  * cc-options are not longer propagated to dependent packages
699  * The cpp/cc/ld-options fields no longer use `,` as a separator
700  * hsc2hs is now called using gcc instead of using ghc as gcc
701  * New api for manipulating sets and graphs of packages
702  * Internal api improvements and code cleanups
703  * Minor improvements to the user guide
704  * Miscellaneous minor bug fixes
705
706----
707
708### 1.4.0.2 [Duncan Coutts](mailto:duncan@haskell.org) August 2008
709  * Fix executable stripping default
710  * Fix striping exes on OSX that export dynamic symbols (like ghc)
711  * Correct the order of arguments given by `--prog-options=`
712  * Fix corner case with overlapping user and global packages
713  * Fix for modules that use pre-processing and `.hs-boot` files
714  * Clarify some points in the user guide and readme text
715  * Fix verbosity flags passed to sub-command like haddock
716  * Fix `sdist --snapshot`
717  * Allow meta-packages that contain no modules or C code
718  * Make the generated Paths module -Wall clean on Windows
719
720### 1.4.0.1 [Duncan Coutts](mailto:duncan@haskell.org) June 2008
721  * Fix a bug which caused `.` to always be in the sources search path
722  * Haddock-2.2 and later do now support the `--hoogle` flag
723
724# 1.4.0.0 [Duncan Coutts](mailto:duncan@haskell.org) June 2008
725  * Rewritten command line handling support
726  * Command line completion with bash
727  * Better support for Haddock 2
728  * Improved support for nhc98
729  * Removed support for ghc-6.2
730  * Haddock markup in `.lhs` files now supported
731  * Default colour scheme for highlighted source code
732  * Default prefix for `--user` installs is now `$HOME/.cabal`
733  * All `.cabal` files are treaded as UTF-8 and must be valid
734  * Many checks added for common mistakes
735  * New `--package-db=` option for specific package databases
736  * Many internal changes to support cabal-install
737  * Stricter parsing for version strings, eg dissalows "1.05"
738  * Improved user guide introduction
739  * Programatica support removed
740  * New options `--program-prefix/suffix` allows eg versioned programs
741  * Support packages that use `.hs-boot` files
742  * Fix sdist for Main modules that require preprocessing
743  * New configure -O flag with optimisation level 0--2
744  * Provide access to "`x-`" extension fields through the Cabal api
745  * Added check for broken installed packages
746  * Added warning about using inconsistent versions of dependencies
747  * Strip binary executable files by default with an option to disable
748  * New options to add site-specific include and library search paths
749  * Lift the restriction that libraries must have exposed-modules
750  * Many bugs fixed.
751  * Many internal structural improvements and code cleanups
752
753----
754
755## 1.2.4.0 [Duncan Coutts](mailto:duncan@haskell.org) June 2008
756  * Released with GHC 6.8.3
757  * Backported several fixes and minor improvements from Cabal-1.4
758  * Use a default colour scheme for sources with hscolour >=1.9
759  * Support `--hyperlink-source` for Haddock >= 2.0
760  * Fix for running in a non-writable directory
761  * Add OSX -framework arguments when linking executables
762  * Updates to the user guide
763  * Allow build-tools names to include + and _
764  * Export autoconfUserHooks and simpleUserHooks
765  * Export ccLdOptionsBuildInfo for `Setup.hs` scripts
766  * Export unionBuildInfo and make BuildInfo an instance of Monoid
767  * Fix to allow the `main-is` module to use a pre-processor
768
769## 1.2.3.0 [Duncan Coutts](mailto:duncan@haskell.org) Nov 2007
770  * Released with GHC 6.8.2
771  * Includes full list of GHC language extensions
772  * Fix infamous `dist/conftest.c` bug
773  * Fix `configure --interfacedir=`
774  * Find ld.exe on Windows correctly
775  * Export PreProcessor constructor and mkSimplePreProcessor
776  * Fix minor bug in unlit code
777  * Fix some markup in the haddock docs
778
779## 1.2.2.0 [Duncan Coutts](mailto:duncan@haskell.org) Nov 2007
780  * Released with GHC 6.8.1
781  * Support haddock-2.0
782  * Support building DSOs with GHC
783  * Require reconfiguring if the `.cabal` file has changed
784  * Fix os(windows) configuration test
785  * Fix building documentation
786  * Fix building packages on Solaris
787  * Other minor bug fixes
788
789## 1.2.1 [Duncan Coutts](mailto:duncan@haskell.org) Oct 2007
790  * To be included in GHC 6.8.1
791  * New field `cpp-options` used when preprocessing Haskell modules
792  * Fixes for hsc2hs when using ghc
793  * C source code gets compiled with -O2 by default
794  * OS aliases, to allow os(windows) rather than requiring os(mingw32)
795  * Fix cleaning of `stub` files
796  * Fix cabal-setup, command line ui that replaces `runhaskell Setup.hs`
797  * Build docs even when dependent packages docs are missing
798  * Allow the `--html-dir` to be specified at configure time
799  * Fix building with ghc-6.2
800  * Other minor bug fixes and build fixes
801
802# 1.2.0  [Duncan Coutts](mailto:duncan.coutts@worc.ox.ac.uk) Sept 2007
803  * To be included in GHC 6.8.x
804  * New configurations feature
805  * Can make haddock docs link to highlighted sources (with hscolour)
806  * New flag to allow linking to haddock docs on the web
807  * Supports pkg-config
808  * New field `build-tools` for tool dependencies
809  * Improved c2hs support
810  * Preprocessor output no longer clutters source dirs
811  * Separate `includes` and `install-includes` fields
812  * Makefile command to generate makefiles for building libs with GHC
813  * New `--docdir` configure flag
814  * Generic `--with-prog` `--prog-args` configure flags
815  * Better default installation paths on Windows
816  * Install paths can be specified relative to each other
817  * License files now installed
818  * Initial support for NHC (incomplete)
819  * Consistent treatment of verbosity
820  * Reduced verbosity of configure step by default
821  * Improved helpfulness of output messages
822  * Help output now clearer and fits in 80 columns
823  * New setup register `--gen-pkg-config` flag for distros
824  * Major internal refactoring, hooks api has changed
825  * Dozens of bug fixes
826
827----
828
829### 1.1.6.2 [Duncan Coutts](mailto:duncan.coutts@worc.ox.ac.uk) May 2007
830
831  * Released with GHC 6.6.1
832  * Handle windows text file encoding for `.cabal` files
833  * Fix compiling a executable for profiling that uses Template Haskell
834  * Other minor bug fixes and user guide clarifications
835
836### 1.1.6.1 [Duncan Coutts](mailto:duncan.coutts@worc.ox.ac.uk) Oct 2006
837
838  * fix unlit code
839  * fix escaping in register.sh
840
841## 1.1.6  [Duncan Coutts](mailto:duncan.coutts@worc.ox.ac.uk) Oct 2006
842
843  * Released with GHC 6.6
844  * Added support for hoogle
845  * Allow profiling and normal builds of libs to be chosen independently
846  * Default installation directories on Win32 changed
847  * Register haddock docs with ghc-pkg
848  * Get haddock to make hyperlinks to dependent package docs
849  * Added BangPatterns language extension
850  * Various bug fixes
851
852## 1.1.4  [Duncan Coutts](mailto:duncan.coutts@worc.ox.ac.uk) May 2006
853
854  * Released with GHC 6.4.2
855  * Better support for packages that need to install header files
856  * cabal-setup added, but not installed by default yet
857  * Implemented `setup register --inplace`
858  * Have packages exposed by default with ghc-6.2
859  * It is no longer necessary to run `configure` before `clean` or `sdist`
860  * Added support for ghc's `-split-objs`
861  * Initial support for JHC
862  * Ignore extension fields in `.cabal` files (fields beginning with "`x-`")
863  * Some changes to command hooks API to improve consistency
864  * Hugs support improvements
865  * Added GeneralisedNewtypeDeriving language extension
866  * Added cabal-version field
867  * Support hidden modules with haddock
868  * Internal code refactoring
869  * More bug fixes
870
871## 1.1.3  [Isaac Jones](mailto:ijones@syntaxpolice.org) Sept 2005
872
873  * WARNING: Interfaces not documented in the user's guide may
874    change in future releases.
875  * Move building of GHCi .o libs to the build phase rather than
876  register phase. (from Duncan Coutts)
877  * Use .tar.gz for source package extension
878  * Uses GHC instead of cpphs if the latter is not available
879  * Added experimental "command hooks" which completely override the
880  default behavior of a command.
881  * Some bugfixes
882
883# 1.1.1  [Isaac Jones](mailto:ijones@syntaxpolice.org) July 2005
884
885  * WARNING: Interfaces not documented in the user's guide may
886    change in future releases.
887  * Handles recursive modules for GHC 6.2 and GHC 6.4.
888  * Added `setup test` command (Used with UserHook)
889  * implemented handling of _stub.{c,h,o} files
890  * Added support for profiling
891  * Changed install prefix of libraries (pref/pkgname-version
892    to prefix/pkgname-version/compname-version)
893  * Added pattern guards as a language extension
894  * Moved some functionality to Language.Haskell.Extension
895  * Register / unregister .bat files for windows
896  * Exposed more of the API
897  * Added support for the hide-all-packages flag in GHC > 6.4
898  * Several bug fixes
899
900----
901
902# 1.0  [Isaac Jones](mailto:ijones@syntaxpolice.org) March 11 2005
903
904  * Released with GHC 6.4, Hugs March 2005, and nhc98 1.18
905  * Some sanity checking
906
907----
908
909# 0.5  [Isaac Jones](mailto:ijones@syntaxpolice.org) Wed Feb 19 2005
910
911  * __WARNING__: this is a pre-release and the interfaces are
912    still likely to change until we reach a 1.0 release.
913  * Hooks interfaces changed
914  * Added preprocessors to user hooks
915  * No more executable-modules or hidden-modules.  Use
916    `other-modules` instead.
917  * Certain fields moved into BuildInfo, much refactoring
918  * `extra-libs` -> `extra-libraries`
919  * Added `--gen-script` to configure and unconfigure.
920  * `modules-ghc` (etc) now `ghc-modules` (etc)
921  * added new fields including `synopsis`
922  * Lots of bug fixes
923  * spaces can sometimes be used instead of commas
924  * A user manual has appeared (Thanks, ross!)
925  * for ghc 6.4, configures versioned depends properly
926  * more features to `./setup haddock`
927
928----
929
930# 0.4  [Isaac Jones](mailto:ijones@syntaxpolice.org) Sun Jan 16 2005
931
932  * Much thanks to all the awesome fptools hackers who have been
933  working hard to build the Haskell Cabal!
934
935  * __Interface Changes__:
936
937    * __WARNING__: this is a pre-release and the interfaces are still
938    likely to change until we reach a 1.0 release.
939
940    * Instead of Package.description, you should name your
941    description files <something>.cabal.  In particular, we suggest
942    that you name it <packagename>.cabal, but this is not enforced
943    (yet).  Multiple `.cabal` files in the same directory is an error,
944    at least for now.
945
946    * `./setup install --install-prefix` is gone.  Use `./setup copy`
947    `--copy-prefix` instead.
948
949    * The `Modules` field is gone.  Use `hidden-modules`,
950    `exposed-modules`, and `executable-modules`.
951
952    * `Build-depends` is now a package-only field, and can't go into
953    executable stanzas.  Build-depends is a package-to-package
954    relationship.
955
956    * Some new fields.  Use the Source.
957
958  * __New Features__
959
960    * Cabal is now included as a package in the CVS version of
961    fptools.  That means it'll be released as `-package Cabal` in
962    future versions of the compilers, and if you are a bleeding-edge
963    user, you can grab it from the CVS repository with the compilers.
964
965    * Hugs compatibility and NHC98 compatibility should both be
966    improved.
967
968    * Hooks Interface / Autoconf compatibility: Most of the hooks
969    interface is hidden for now, because it's not finalized.  I have
970    exposed only `defaultMainWithHooks` and `defaultUserHooks`.  This
971    allows you to use a ./configure script to preprocess
972    `foo.buildinfo`, which gets merged with `foo.cabal`.  In future
973    releases, we'll expose UserHooks, but we're definitely going to
974    change the interface to those.  The interface to the two functions
975    I've exposed should stay the same, though.
976
977    * ./setup haddock is a baby feature which pre-processes the
978    source code with hscpp and runs haddock on it.  This is brand new
979    and hardly tested, so you get to knock it around and see what you
980    think.
981
982    * Some commands now actually implement verbosity.
983
984    * The preprocessors have been tested a bit more, and seem to work
985    OK.  Please give feedback if you use these.
986
987----
988
989# 0.3  [Isaac Jones](mailto:ijones@syntaxpolice.org) Sun Jan 16 2005
990
991  * Unstable snapshot release
992  * From now on, stable releases are even.
993
994----
995
996# 0.2  [Isaac Jones](mailto:ijones@syntaxpolice.org)
997
998  * Adds more HUGS support and preprocessor support.
999