1 Cabal and Cabal-syntax 3.12.1.0 changelog and release notes
5 ### Significant changes
7 - Update GHC arguments normalization and GHC options rendering [#9729](https://github.com/haskell/cabal/issues/9729) [#10014](https://github.com/haskell/cabal/pull/10014)
9 The flags `-fdiagnostics-as-json`, `-fprint-error-index-lists`, `-fbreak-points`, `-dipe-stats`, `-ffamily-application-cache`, `-fprint-redundant-promotion-ticks`, `-fshow-error-context` and `-funoptimized-core-for-interpreter` have been added to the flags that do not cause recompilation.
11 - Warn on missing `default-language` [#9620](https://github.com/haskell/cabal/issues/9620) [#9766](https://github.com/haskell/cabal/pull/9766)
13 - To help the adoption of GHC language editions, `cabal check` will now
14 warn about missing `default-language`.
16 - Add MHS ([MicroHS](https://github.com/augustss/MicroHs)) as a known Haskell compiler [#9878](https://github.com/haskell/cabal/pull/9878)
18 - Re-instate `initialBuildSteps` [#9856](https://github.com/haskell/cabal/issues/9856) [#9950](https://github.com/haskell/cabal/pull/9950)
20 The `initialBuildSteps` function from `Distribution.Simple.Build`, which had
21 been hastily removed, has been reinstated.
23 It now comes with a deprecation warning: calling that function does not suffice
24 to prepare the sources for a package, as there are other steps that one might
27 - running pre-processors (such as alex/happy);
28 - running pre-build hooks or custom logic
29 (in build-type: Hooks or build-type: Custom or Configure).
31 Consumers wanting to prepare the sources of a package, e.g. in order to launch a
32 REPL session, are advised to run `setup repl --repl-multi-file=<fn>` instead.
34 - Label error messages with codes (following GHC, Stack)
36 As with GHC and Stack, Cabal and cabal-install now generate warnings and errors prefixed with error codes of the form `[Cabal-xxxxx]`. These will be documented on https://errors.haskell.org, although very few are as yet.
38 This change was actually present in Cabal-3.12.0.0, but was inadvertently omitted from the changelog.
42 - Don't recommend deprecated/removed `extensions` field [#10042](https://github.com/haskell/cabal/issues/10042) [#10044](https://github.com/haskell/cabal/pull/10044)
44 When applicable, field `default-extensions` is recommended (rather than
45 deprecated/removed `extensions:`).
47 - Make `Setup copy` and `Setup install` succeed when there's no executable or library [#6750](https://github.com/haskell/cabal/issues/6750) [#9926](https://github.com/haskell/cabal/pull/9926)
49 Historically the Setup copy and install steps would fail if the package didn't
50 contain an executable or library component. In this case there's nothing to do.
52 This required workarounds for downstream users of Cabal to handle this edge case.
53 Now that this error has been downgraded to a warning, Cabal will succeed if
54 there's nothing to do.