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