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