haskell / haskell/cabal

cabal-version: 3.4 Don't generate `Paths_pkgname.hs` when it's not in `autogen-modules`

Open
#6,452 0 comments 0 reactions 0 assignees View on GitHub
blocked: decision-needed
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

This is following explicit rule of "don't do anything you are not told to do".

- `cabal-version: 3.4.` only generate `Paths_pkgname.hs` if there is `autogen-modules: Paths_pkgname` (note, `other-modules` would not be enough!)
- `cabal-version: 3.0` or older: generate `Paths_pkgname.hs` always.

Along the same vein we could not generate `cabal_macros.h` (if there's no `*-extensions: CPP`), but that would be a silent breakage as recent GHCs provide some of definitions. So for `cabal_macros.h`, the best we can do is to not generate additional `TOOL_*` macros. #6442 is related

- `cabal-version: 3.4` and *recent GHC*: generate `cabal_macros.h` only if there **is** `*-extensions: CPP`
- `cabal-versions: 3.4` and *old GHC*:
- generate full `cabal_macros.h` if there's `*-extensions: CPP`
- generate only `TOOL_` and `CURRENT_` definitions if there **is not** `*-extensions: CPP`
- `cabal-version: 3.0` or older, and *recent GHC*: generate only `TOOL_` and `CURRENT_` definitions
- `cabal-version: 3.0` or older, and *old GHC*: generate full `cabal_macros.h`

Note: currently `Paths_pkgname.hs` uses CPP itself, but it can be changed.
We can generate Paths file suitable for specific compiler/dependencies version.

Discussion time: until 2020-02-01

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.