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