Skip to content

Commit 24fc26b

Browse files
authored
Merge pull request #6239 from commercialhaskell/ghc-9.4.7
Fix #6238 Move Stack on to GHC 9.4.7
2 parents aa0d4ee + c153adc commit 24fc26b

File tree

122 files changed

+184
-190
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+184
-190
lines changed

.devcontainer/devcontainer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"build": {
44
"dockerfile": "GHC.Dockerfile",
55
"args": {
6-
"GHC_VERSION": "9.4.6",
7-
"HLS_VERSION": "2.1.0.0",
6+
"GHC_VERSION": "9.4.7",
7+
"HLS_VERSION": "2.2.0.0",
88
"USE_ZSH_FOR_ROOT": "unset-to-use-ash",
99
"SET_LANG": "C.UTF-8",
1010
"SET_TZ": ""

cabal.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ constraints:
8080
, generic-deriving ==1.14.5
8181
, generically ==0.1.1
8282
, ghc-bignum ==1.3
83-
, ghc-boot-th ==9.4.6
83+
, ghc-boot-th ==9.4.7
8484
, ghc-prim ==0.9.1
8585
, githash ==0.1.7.0
8686
, hackage-security ==0.6.2.3

cabal.project

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
-- specified by the snapshot specifed in Stack's project-level YAML
3434
-- configuration file (`stack.yaml`). The relevant version of GHC can be
3535
-- confirmed by reviewing the snapshot on Stackage. For example, at:
36-
-- https://www.stackage.org/lts-21.11/cabal.config.
36+
-- https://www.stackage.org/lts-21.12/cabal.config.
3737
--
38-
with-compiler: ghc-9.4.6
38+
with-compiler: ghc-9.4.7
3939
import: cabal.config
4040
packages: .

doc/GUIDE.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,8 @@ packages:
255255

256256
The value of the `resolver` key tells Stack *how* to build your package: which
257257
GHC version to use, versions of package dependencies, and so on. Our value here
258-
says to use [LTS Haskell 21.11](https://www.stackage.org/lts-21.11), which
259-
implies GHC 9.4.6 (which is why `stack build` installs that version of GHC if it
258+
says to use [LTS Haskell 21.12](https://www.stackage.org/lts-21.12), which
259+
implies GHC 9.4.7 (which is why `stack build` installs that version of GHC if it
260260
is not already available to Stack). There are a number of values you can use for
261261
`resolver`, which we'll cover later.
262262

@@ -503,7 +503,7 @@ also known as *snapshots*. We mentioned the LTS resolvers, and you can get quite
503503
a bit of information about it at
504504
[https://www.stackage.org/lts](https://www.stackage.org/lts), including:
505505

506-
* The appropriate resolver value (`resolver: lts-21.11`, as is currently the
506+
* The appropriate resolver value (`resolver: lts-21.12`, as is currently the
507507
latest LTS)
508508
* The GHC version used
509509
* A full list of all packages available in this snapshot
@@ -522,7 +522,7 @@ towards by default as well).
522522

523523
## Resolvers and changing your compiler version
524524

525-
Let's explore package sets a bit further. Instead of `lts-21.11`, let's change
525+
Let's explore package sets a bit further. Instead of `lts-21.12`, let's change
526526
our `stack.yaml` file to use the
527527
[latest nightly](https://www.stackage.org/nightly). Right now, this is currently
528528
2023-09-09 - please see the resolver from the link above to get the latest.
@@ -1340,7 +1340,7 @@ yields output like:
13401340

13411341
~~~text
13421342
Run from outside a project, using implicit global project config
1343-
Using latest snapshot resolver: lts-21.11
1343+
Using latest snapshot resolver: lts-21.12
13441344
Writing global (non-project-specific) config file to: /home/michael/.stack/global/stack.yaml
13451345
Note: You can change the snapshot via the resolver field there.
13461346
I installed the stm package via --package stm

doc/Stack_and_VS_Code.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ enabled). For further information about these options, see the `install-ghc`
7575

7676
For this workaround to work, each time that a resolver is used that references a
7777
different version of GHC, then GHCup must be used to install it (if GHCup has
78-
not already installed that version). For example, to use `resolver: lts-21.11`
79-
(GHC 9.4.6), the command `ghcup install ghc 9.4.6` must have been used to
80-
install GHC 9.4.6. That may be a minor inconvenience for some people, as one the
78+
not already installed that version). For example, to use `resolver: lts-21.12`
79+
(GHC 9.4.7), the command `ghcup install ghc 9.4.7` must have been used to
80+
install GHC 9.4.7. That may be a minor inconvenience for some people, as one the
8181
primary benefits of Stack over other Haskell build tools has been that Stack
8282
automatically ensures that the necessary version of GHC is available.
8383

doc/custom_snapshot.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ available in snapshots to ensure reproducibility.
1717
snapshot specification.
1818

1919
~~~yaml
20-
resolver: lts-21.11 # Inherits GHC version and package set
20+
resolver: lts-21.12 # Inherits GHC version and package set
2121
compiler: ghc-9.6.2 # Overwrites GHC version in the resolver, optional
2222

2323
# Additional packages, follows extra-deps syntax
@@ -61,35 +61,35 @@ custom snapshot, due to Stack sharing snapshot packages whenever possible.
6161

6262
### Overriding the compiler
6363

64-
The following snapshot specification will be identical to `lts-21.11`, but
65-
instead use `ghc-9.4.5` instead of `ghc-9.4.6`:
64+
The following snapshot specification will be identical to `lts-21.12`, but
65+
instead use `ghc-9.4.5` instead of `ghc-9.4.7`:
6666

6767
~~~yaml
68-
resolver: lts-21.11
68+
resolver: lts-21.12
6969
compiler: ghc-9.4.5
7070
~~~
7171

7272
### Dropping packages
7373

74-
The following snapshot specification will be identical to `lts-21.11`, but
74+
The following snapshot specification will be identical to `lts-21.12`, but
7575
without the `text` package in our snapshot. Removing this package will cause all
7676
the packages that depend on `text` to be unbuildable, but they will still be
7777
present in the snapshot.
7878

7979
~~~yaml
80-
resolver: lts-21.11
80+
resolver: lts-21.12
8181
drop-packages:
8282
- text
8383
~~~
8484

8585
### Hiding packages
8686

87-
The following snapshot specification will be identical to `lts-21.11`, but the
87+
The following snapshot specification will be identical to `lts-21.12`, but the
8888
`text` package will be hidden when registering. This will affect, for example,
8989
the import parser in the script command.
9090

9191
~~~yaml
92-
resolver: lts-21.11
92+
resolver: lts-21.12
9393
hidden:
9494
- text
9595
~~~
@@ -99,11 +99,11 @@ hidden:
9999
In order to specify GHC options for a package, you use the same syntax as the
100100
[ghc-options](yaml_configuration.md#ghc-options) key for build configuration.
101101

102-
The following snapshot specification will be identical to `lts-21.11`, but
102+
The following snapshot specification will be identical to `lts-21.12`, but
103103
provides `-O1` as a ghc-option for `text`:
104104

105105
~~~yaml
106-
resolver: lts-21.11
106+
resolver: lts-21.12
107107
packages:
108108
- text-2.0.2
109109
ghc-options:
@@ -122,11 +122,11 @@ packages in the `packages` list, rather than all packages in the snapshot.
122122

123123
In order to specify Cabal flags for a package, you use the same syntax as the
124124
[flags](yaml_configuration.md#flags) key for build configuration. The
125-
following snapshot specification will be identical to `lts-21.11`, but
125+
following snapshot specification will be identical to `lts-21.12`, but
126126
it enables the `developer` Cabal flag:
127127

128128
~~~yaml
129-
resolver: lts-21.11
129+
resolver: lts-21.12
130130
packages:
131131
- text-2.0.2
132132
flags:

doc/dev_containers.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ provided in the default Dev Container only.
3434
!!! info
3535

3636
The PATH is
37-
`$HOME/.cabal/bin:$HOME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`. Consequently, executables installed with Cabal (the tool)
38-
(at `$HOME/.cabal/bin`) or Stack or Pip (at `$HOME/.local/bin`) take
39-
precedence over the same executable installed at `/usr/local/sbin`,
40-
`/usr/local/bin`, etc.
37+
`$HOME/.cabal/bin:$HOME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`.
38+
Consequently, executables installed with Cabal (the tool) (at
39+
`$HOME/.cabal/bin`) or Stack or Pip (at `$HOME/.local/bin`) take precedence
40+
over the same executable installed at `/usr/local/sbin`, `/usr/local/bin`,
41+
etc.
4142

4243
[VS Code](https://code.visualstudio.com) is used as IDE, with the following
4344
extensions pre‑installed:
@@ -62,15 +63,16 @@ These Docker images are multi-architecture (`linux/amd64`, `linux/arm64/v8`)
6263
*ghc‑musl* images. They are based on Alpine Linux (that is
6364
[musl libc](https://musl.libc.org) and [BusyBox](https://www.busybox.net)).
6465

65-
The images contain *unofficial* binary distributions of GHC 9.4.6 and 9.6.2
66+
The images contain *unofficial* binary distributions of GHC 9.4.7 and 9.6.2
6667
(that is, ones not released by the GHC developers). That is because:
6768

68-
1. the official GHC binary distributions for Alpine Linux/x86_64 have known
69-
bugs; and
69+
1. the official GHC 9.6.2 binary distributions for Alpine Linux/x86_64 have
70+
known bugs; and
7071
2. there are no official binary distributions for Alpine Linux/AArch64.
7172

7273
Stack's global configuration (`/etc/stack/config.yaml`) sets `system-ghc: true`
73-
and `install-ghc: false`. That ensures that only the GHC available in the Dev Containers is used.
74+
and `install-ghc: false`. That ensures that only the GHC available in the Dev
75+
Containers is used.
7476

7577
## Usage
7678

doc/faq.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ here is to be as helpful and concise as possible.
99
## What version of GHC is used when I run something like `stack ghci`?
1010

1111
The version of GHC, as well as which packages can be installed, are specified by
12-
the _resolver_. This may be something like `lts-21.11`, which is from
12+
the _resolver_. This may be something like `lts-21.12`, which is from
1313
[Stackage](https://www.stackage.org/). The [user's guide](GUIDE.md) discusses
1414
the resolver in more detail.
1515

@@ -76,7 +76,7 @@ You can make tweaks to a snapshot by modifying the `extra-deps` configuration
7676
value in your `stack.yaml` file, e.g.:
7777

7878
~~~yaml
79-
resolver: lts-21.11
79+
resolver: lts-21.12
8080
packages:
8181
- .
8282
extra-deps:
@@ -91,7 +91,7 @@ Add it to the
9191
directory where your `stack.yaml` file lives, e.g.
9292

9393
~~~yaml
94-
resolver: lts-21.11
94+
resolver: lts-21.12
9595
packages:
9696
- .
9797
extra-deps:

doc/list_command.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@ Package index cache populated
4141
Error: [S-4926]
4242
- Could not find package paltry on Hackage. Perhaps you meant: pantry, pretty, pasty, xattr, alloy, para, pappy, alure, polar, factory
4343
44-
stack --resolver lts-21.11 list base unix Win32 acme-missiles pantry
44+
stack --resolver lts-21.12 list base unix Win32 acme-missiles pantry
4545
Error: [S-4926]
4646
- Package does not appear in snapshot: base
4747
- Package does not appear in snapshot: unix
48+
- Package does not appear in snapshot: Win32
4849
- Package does not appear in snapshot: acme-missiles
4950
50-
stack --resolver lts-21.11 list Win32 pantry
51-
Win32-2.12.0.1
51+
stack --resolver lts-21.12 list pantry
5252
pantry-0.8.3
5353
54-
stack --resolver lts-21.11 list
54+
stack --resolver lts-21.12 list
5555
AC-Angle-1.0
5656
ALUT-2.4.0.3
5757
...

doc/script_command.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ configuration files (global and project-level). A snapshot must be specified on
1818
the command line (with the `--resolver` option). For example:
1919

2020
~~~text
21-
stack script --resolver lts-21.11 MyScript.hs
21+
stack script --resolver lts-21.12 MyScript.hs
2222
~~~
2323

2424
The `stack script` command behaves as if the `--install-ghc` flag had been
@@ -100,7 +100,7 @@ main = do
100100
can be compiled and run, with arguments, with:
101101

102102
~~~text
103-
stack --resolver lts-21.11 script --package acme-missiles --compile MyScript.hs -- "Don't panic!" "Duck and cover!"
103+
stack --resolver lts-21.12 script --package acme-missiles --compile MyScript.hs -- "Don't panic!" "Duck and cover!"
104104
~~~
105105

106106
All the compilation outputs (like `Main.hi`, `Main.o`, and the executable

doc/scripts.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ An example will be easiest to understand. Consider the Haskell source file
1919

2020
~~~haskell
2121
#!/usr/bin/env stack
22-
-- stack script --resolver lts-21.11 --package turtle
22+
-- stack script --resolver lts-21.12 --package turtle
2323
{-# LANGUAGE OverloadedStrings #-}
2424
import Turtle (echo)
2525
main = echo "Hello World!"
@@ -78,10 +78,10 @@ able to reuse everything already built).
7878

7979
The second line of the source code is the Stack interpreter options comment. In
8080
this example, it specifies the `stack script` command with the options of a
81-
LTS Haskell 21.11 snapshot (`--resolver lts-21.11`) and ensuring the
81+
LTS Haskell 21.12 snapshot (`--resolver lts-21.12`) and ensuring the
8282
[`turtle` package](https://hackage.haskell.org/package/turtle) is available
8383
(`--package turtle`). The version of the package will be that in the specified
84-
snapshot (`lts-21.11` provides `turtle-1.6.1`).
84+
snapshot (`lts-21.12` provides `turtle-1.6.1`).
8585

8686
## Arguments and interpreter options and arguments
8787

@@ -116,7 +116,7 @@ For example, the command `stack MyScript.hs arg1 arg2` with `MyScript.hs`:
116116
~~~haskell
117117
#!/usr/bin/env stack
118118
{- stack script
119-
--resolver lts-21.11
119+
--resolver lts-21.12
120120
--
121121
+RTS -s -RTS
122122
-}
@@ -132,7 +132,7 @@ main = do
132132
is equivalent to the following command at the command line:
133133

134134
~~~text
135-
stack script --resolver lts-21.11 -- MyScript.hs arg1 arg2 +RTS -s -RTS
135+
stack script --resolver lts-21.12 -- MyScript.hs arg1 arg2 +RTS -s -RTS
136136
~~~
137137

138138
where `+RTS -s -RTS` are some of GHC's
@@ -161,7 +161,7 @@ space separated list. For example:
161161
~~~haskell
162162
#!/usr/bin/env stack
163163
{- stack script
164-
--resolver lts-21.11
164+
--resolver lts-21.12
165165
--package turtle
166166
--package "stm async"
167167
--package http-client,http-conduit
@@ -191,7 +191,7 @@ which makes use of the joke package
191191

192192
~~~haskell
193193
{- stack script
194-
--resolver lts-21.11
194+
--resolver lts-21.12
195195
--package acme-missiles
196196
-}
197197
import Acme.Missiles (launchMissiles)
@@ -202,7 +202,7 @@ main = launchMissiles
202202

203203
The command `stack --script-no-run-compile Script.hs` then behaves as if the
204204
command
205-
`stack script --resolver lts-21.11 --package acme-missiles --no-run --compile -- Script.hs`
205+
`stack script --resolver lts-21.12 --package acme-missiles --no-run --compile -- Script.hs`
206206
had been given. `Script.hs` is compiled (without optimisation) and the resulting
207207
executable is not run: no missiles are launched in the process!
208208

@@ -239,7 +239,7 @@ example with `runghc`:
239239
{- stack
240240
runghc
241241
--install-ghc
242-
--resolver lts-21.11
242+
--resolver lts-21.12
243243
--package base
244244
--package turtle
245245
--
@@ -262,7 +262,7 @@ it. Here is an example:
262262
{- stack
263263
exec ghci
264264
--install-ghc
265-
--resolver lts-21.11
265+
--resolver lts-21.12
266266
--package turtle
267267
-}
268268
~~~

doc/stack_yaml_vs_cabal_package_file.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ requires that you have chosen a specific version for each package available.
6464

6565
The most common means by which this set of packages is defined is via a
6666
snapshot provided by Stackage. For example, if you go to the page
67-
<https://www.stackage.org/lts-21.11>, you will see a list of 3,010 packages at
68-
specific version numbers. When you then specify `resolver: lts-21.11`, you're
67+
<https://www.stackage.org/lts-21.12>, you will see a list of 3,010 packages at
68+
specific version numbers. When you then specify `resolver: lts-21.12`, you're
6969
telling Stack to use those package versions in resolving dependencies down to
7070
specific versions of packages.
7171

doc/yaml_configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ installation, and various settings like build flags. It is called a resolver
9898
since a snapshot states how dependencies are resolved. There are currently
9999
four resolver types:
100100

101-
* LTS Haskell snapshots, e.g. `resolver: lts-21.11`
101+
* LTS Haskell snapshots, e.g. `resolver: lts-21.12`
102102
* Stackage Nightly snapshots, e.g. `resolver: nightly-2023-09-09`
103103
* No snapshot, just use packages shipped with the compiler. For GHC this looks
104104
like `resolver: ghc-9.6.2`
@@ -536,7 +536,7 @@ resolvers like `ghc-9.6.2`. This can be used to override the
536536
compiler for a Stackage snapshot, like this:
537537

538538
~~~yaml
539-
resolver: lts-21.11
539+
resolver: lts-21.12
540540
compiler: ghc-9.6.2
541541
compiler-check: match-exact
542542
~~~

etc/scripts/build-stack-installer.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{- stack script
2-
--resolver lts-21.11
2+
--resolver lts-21.12
33
--install-ghc
44
--package nsis
55
-}

0 commit comments

Comments
 (0)