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