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