Skip to content

Commit 70f3dc0

Browse files
committed
Merge branch 'stable'
2 parents 416b241 + a0aa627 commit 70f3dc0

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

doc/topics/GHC_from_source.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,20 @@ The Hadrian build system has certain
122122
It requires certain versions of the `happy` and `alex` executables on the PATH.
123123
Stack will build and install `happy` and `alex`, if not already on the PATH.
124124

125+
!!! note
126+
127+
If `happy` and/or `alex` is already on the PATH, it may not be a version
128+
that Hadrian supports. In that case, you may wish to remove that version
129+
from the PATH and ensure that the package version specified by
130+
`hadrian/stack.yaml` or, if applicable, via the contents of the `STACK` environment variable is an appropriate one.
131+
132+
!!! note
133+
134+
`alex-3.5.0.0` removed `-v` as an alias for `--version` and added `-v` as an
135+
alias for `--verbose` (a flag that is not implemented as of `alex-3.5.4.0`).
136+
137+
Hadrian may expect `-v` to be an alias for `--version`.
138+
125139
=== "macOS"
126140

127141
Hadrian requires, or case use, certain tools or Python packages that do not

doc/tutorial/cabal_flags_and_ghc_options.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,35 @@ flags and with GHC options.
77

88
## Cabal flags
99

10+
A package description may specify one or more Cabal flags:
11+
12+
=== "Cabal file"
13+
14+
~~~text
15+
flag my-flag-name
16+
description: My (optional) description of my flag.
17+
default: false -- Optional: the default value is true
18+
manual: true -- Optional: the default value is false
19+
~~~
20+
21+
=== "`package.yaml` (Hpack)"
22+
23+
~~~yaml
24+
flags:
25+
my-flag-name:
26+
description: My (optional) description of my flag.
27+
default: true # Required
28+
manual: false # Required
29+
~~~
30+
31+
??? question "How does `manual: false` affect Stack's builds?"
32+
33+
`manual: false` has different implications for Cabal and Stack. Cabal tries
34+
to 'solve' dependencies using the flag’s default value and, if it can't,
35+
tries again with the negated default value. Stack emphasises reproducible
36+
builds. It only tries to build with the flag's default value and, if it
37+
can't, reports that it can't.
38+
1039
Cabal flags can be set or unset at the command line or as a project-specific
1140
Stack option.
1241

0 commit comments

Comments
 (0)