Skip to content

Commit 760fdc0

Browse files
Merge branch 'master' into record-dot-completion-fix
2 parents 384807f + b1966ff commit 760fdc0

File tree

123 files changed

+2857
-2793
lines changed

Some content is hidden

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

123 files changed

+2857
-2793
lines changed

.circleci/config.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@ version: 2
6060
jobs:
6161
stackage-lts22:
6262
docker:
63-
- image: haskell:9.6.5-slim-buster
63+
- image: haskell:9.6.6-slim-bullseye
6464
environment:
6565
- STACK_FILE: "stack-lts22.yaml"
6666
<<: *defaults
6767

68-
stackage-nightly:
68+
stackage-lts23:
6969
docker:
70-
- image: haskell:9.8.2-slim-buster
70+
- image: haskell:9.8.4-slim-bullseye
7171
environment:
7272
- STACK_FILE: "stack.yaml"
7373
<<: *defaults
@@ -77,4 +77,4 @@ workflows:
7777
multiple-ghcs:
7878
jobs:
7979
- stackage-lts22
80-
- stackage-nightly
80+
- stackage-lts23

.github/actions/bindist-actions/action-centos7/action.yaml

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
description: Container for deb12
2+
inputs:
3+
stage:
4+
description: which stage to build
5+
required: true
6+
version:
7+
description: which GHC version to build/test
8+
required: false
9+
name: action-deb12
10+
runs:
11+
entrypoint: .github/scripts/entrypoint.sh
12+
env:
13+
GHC_VERSION: ${{ inputs.version }}
14+
INSTALL: apt-get update && apt-get install -y
15+
STAGE: ${{ inputs.stage }}
16+
TOOLS: libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev
17+
git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc
18+
autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5
19+
libtinfo5 patchelf
20+
image: debian:12
21+
using: docker
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
description: Container for fedora27
1+
description: Container for fedora40
22
inputs:
33
stage:
44
description: which stage to build
55
required: true
66
version:
77
description: which GHC version to build/test
88
required: false
9-
name: action-fedora27
9+
name: action-fedora40
1010
runs:
1111
entrypoint: .github/scripts/entrypoint.sh
1212
env:
@@ -17,5 +17,5 @@ runs:
1717
findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs
1818
ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which
1919
xz zlib-devel patchelf
20-
image: fedora:27
20+
image: fedora:40
2121
using: docker
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
description: Container for mint213
2+
inputs:
3+
stage:
4+
description: which stage to build
5+
required: true
6+
version:
7+
description: which GHC version to build/test
8+
required: false
9+
name: action-mint213
10+
runs:
11+
entrypoint: .github/scripts/entrypoint.sh
12+
env:
13+
GHC_VERSION: ${{ inputs.version }}
14+
INSTALL: apt-get update && apt-get install -y
15+
STAGE: ${{ inputs.stage }}
16+
TOOLS: libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev
17+
git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc
18+
autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5
19+
libtinfo5 patchelf
20+
image: linuxmintd/mint21.3-amd64
21+
using: docker

.github/actions/setup-build/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ inputs:
77
cabal:
88
description: "Cabal version"
99
required: false
10-
default: "3.10.2.0"
10+
default: "3.14.2.0"
1111
os:
1212
description: "Operating system: Linux, Windows or macOS"
1313
required: true

.github/generate-ci/gen_ci.hs

Lines changed: 67 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
{-# LANGUAGE OverloadedStrings #-}
2-
{-# LANGUAGE RecordWildCards #-}
2+
{-# LANGUAGE RecordWildCards #-}
33

4-
import Control.Monad
5-
import Data.Maybe
4+
import Control.Monad
5+
import Data.Maybe
66

7-
import Data.Aeson hiding ( encode )
8-
import Data.Aeson.Types (Pair)
9-
import qualified Data.Aeson.Key as K
10-
import Data.Yaml
7+
import Data.Aeson hiding (encode)
8+
import qualified Data.Aeson.Key as K
9+
import Data.Aeson.Types (Pair)
10+
import Data.Yaml
1111

12-
import qualified Data.ByteString as BS
12+
import qualified Data.ByteString as BS
1313

14-
import qualified Data.List as L
14+
import qualified Data.List as L
1515

16-
import System.Directory
17-
import System.FilePath
18-
import System.Environment
16+
import System.Directory
17+
import System.Environment
18+
import System.FilePath
1919

2020
-------------------------------------------------------------------------------
2121
-- Configuration parameters
@@ -27,22 +27,23 @@ data Opsys
2727
| Windows deriving (Eq)
2828

2929
osName :: Opsys -> String
30-
osName Darwin = "mac"
31-
osName Windows = "windows"
30+
osName Darwin = "mac"
31+
osName Windows = "windows"
3232
osName (Linux d) = "linux-" ++ distroName d
3333

3434
data Distro
3535
= Debian9
3636
| Debian10
3737
| Debian11
38+
| Debian12
3839
| Ubuntu1804
3940
| Ubuntu2004
4041
| Ubuntu2204
4142
| Mint193
4243
| Mint202
43-
| Fedora27
44+
| Mint213
4445
| Fedora33
45-
| Centos7
46+
| Fedora40
4647
| Rocky8
4748
deriving (Eq, Enum, Bounded)
4849

@@ -51,28 +52,26 @@ allDistros = [minBound .. maxBound]
5152

5253
data Arch = Amd64 | AArch64
5354
archName :: Arch -> String
54-
archName Amd64 = "x86_64"
55+
archName Amd64 = "x86_64"
5556
archName AArch64 = "aarch64"
5657

5758
artifactName :: Arch -> Opsys -> String
5859
artifactName arch opsys = archName arch ++ "-" ++ case opsys of
5960
Linux distro -> "linux-" ++ distroName distro
60-
Darwin -> "apple-darwin"
61-
Windows -> "mingw64"
61+
Darwin -> "apple-darwin"
62+
Windows -> "mingw64"
6263

6364
data GHC
64-
= GHC948
65-
| GHC967
65+
= GHC967
6666
| GHC984
67-
| GHC9101
67+
| GHC9102
6868
| GHC9122
6969
deriving (Eq, Enum, Bounded)
7070

7171
ghcVersion :: GHC -> String
72-
ghcVersion GHC948 = "9.4.8"
73-
ghcVersion GHC967 = "9.6.7"
74-
ghcVersion GHC984 = "9.8.4"
75-
ghcVersion GHC9101 = "9.10.1"
72+
ghcVersion GHC967 = "9.6.7"
73+
ghcVersion GHC984 = "9.8.4"
74+
ghcVersion GHC9102 = "9.10.2"
7675
ghcVersion GHC9122 = "9.12.2"
7776

7877
ghcVersionIdent :: GHC -> String
@@ -88,59 +87,63 @@ data Stage = Build GHC | Bindist | Test
8887
-------------------------------------------------------------------------------
8988

9089
distroImage :: Distro -> String
91-
distroImage Debian9 = "debian:9"
92-
distroImage Debian10 = "debian:10"
93-
distroImage Debian11 = "debian:11"
90+
distroImage Debian9 = "debian:9"
91+
distroImage Debian10 = "debian:10"
92+
distroImage Debian11 = "debian:11"
93+
distroImage Debian12 = "debian:12"
9494
distroImage Ubuntu1804 = "ubuntu:18.04"
9595
distroImage Ubuntu2004 = "ubuntu:20.04"
9696
distroImage Ubuntu2204 = "ubuntu:22.04"
97-
distroImage Mint193 = "linuxmintd/mint19.3-amd64"
98-
distroImage Mint202 = "linuxmintd/mint20.2-amd64"
99-
distroImage Fedora27 = "fedora:27"
100-
distroImage Fedora33 = "fedora:33"
101-
distroImage Centos7 = "centos:7"
102-
distroImage Rocky8 = "rockylinux:8"
97+
distroImage Mint193 = "linuxmintd/mint19.3-amd64"
98+
distroImage Mint202 = "linuxmintd/mint20.2-amd64"
99+
distroImage Mint213 = "linuxmintd/mint21.3-amd64"
100+
distroImage Fedora33 = "fedora:33"
101+
distroImage Fedora40 = "fedora:40"
102+
distroImage Rocky8 = "rockylinux:8"
103103

104104
distroName :: Distro -> String
105-
distroName Debian9 = "deb9"
106-
distroName Debian10 = "deb10"
107-
distroName Debian11 = "deb11"
105+
distroName Debian9 = "deb9"
106+
distroName Debian10 = "deb10"
107+
distroName Debian11 = "deb11"
108+
distroName Debian12 = "deb12"
108109
distroName Ubuntu1804 = "ubuntu1804"
109110
distroName Ubuntu2004 = "ubuntu2004"
110111
distroName Ubuntu2204 = "ubuntu2204"
111-
distroName Mint193 = "mint193"
112-
distroName Mint202 = "mint202"
113-
distroName Fedora27 = "fedora27"
114-
distroName Fedora33 = "fedora33"
115-
distroName Centos7 = "centos7"
116-
distroName Rocky8 = "unknown"
112+
distroName Mint193 = "mint193"
113+
distroName Mint202 = "mint202"
114+
distroName Mint213 = "mint213"
115+
distroName Fedora33 = "fedora33"
116+
distroName Fedora40 = "fedora40"
117+
distroName Rocky8 = "unknown"
117118

118119
distroInstall :: Distro -> String
119120
distroInstall Debian9 = "sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list && sed -i 's|security.debian.org|archive.debian.org/|g' /etc/apt/sources.list && sed -i /-updates/d /etc/apt/sources.list && apt-get update && apt-get install -y"
120121
distroInstall Debian10 = "apt-get update && apt-get install -y"
121122
distroInstall Debian11 = "apt-get update && apt-get install -y"
123+
distroInstall Debian12 = "apt-get update && apt-get install -y"
122124
distroInstall Ubuntu1804 = "apt-get update && apt-get install -y"
123125
distroInstall Ubuntu2004 = "apt-get update && apt-get install -y"
124126
distroInstall Ubuntu2204 = "apt-get update && apt-get install -y"
125127
distroInstall Mint193 = "apt-get update && apt-get install -y"
126128
distroInstall Mint202 = "apt-get update && apt-get install -y"
127-
distroInstall Fedora27 = "dnf install -y"
129+
distroInstall Mint213 = "apt-get update && apt-get install -y"
128130
distroInstall Fedora33 = "dnf install -y"
129-
distroInstall Centos7 = "sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && yum -y install epel-release && yum install -y"
131+
distroInstall Fedora40 = "dnf install -y"
130132
distroInstall Rocky8 = "yum -y install epel-release && yum install -y --allowerasing"
131133

132134
distroTools :: Distro -> String
133135
distroTools Debian9 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
134136
distroTools Debian10 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
135137
distroTools Debian11 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
138+
distroTools Debian12 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
136139
distroTools Ubuntu1804 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
137140
distroTools Ubuntu2004 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
138141
distroTools Ubuntu2204 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
139142
distroTools Mint193 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
140143
distroTools Mint202 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
141-
distroTools Fedora27 = "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
144+
distroTools Mint213 = "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
142145
distroTools Fedora33 = "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
143-
distroTools Centos7 = "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
146+
distroTools Fedora40 = "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
144147
distroTools Rocky8 = "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
145148

146149
-------------------------------------------------------------------------------
@@ -160,13 +163,13 @@ envVars arch os = object $
160163
baseEnv
161164
++ [ "TARBALL_EXT" .= str (case os of
162165
Windows -> "zip"
163-
_ -> "tar.xz")
166+
_ -> "tar.xz")
164167
, "ARCH" .= str (case arch of
165-
Amd64 -> "64"
168+
Amd64 -> "64"
166169
AArch64 -> "ARM64")
167170
, "ADD_CABAL_ARGS" .= str (case (os,arch) of
168171
(Linux _, Amd64) -> "--enable-split-sections"
169-
_ -> "")
172+
_ -> "")
170173
, "ARTIFACT" .= artifactName arch os
171174
]
172175
++ [ "DEBIAN_FRONTEND" .= str "noninteractive"
@@ -181,21 +184,21 @@ envVars arch os = object $
181184

182185
-- | Runner selection
183186
runner :: Arch -> Opsys -> [Value]
184-
runner Amd64 (Linux _) = ["ubuntu-latest"]
187+
runner Amd64 (Linux _) = ["ubuntu-latest"]
185188
runner AArch64 (Linux _) = ["self-hosted", "Linux", "ARM64", "maerwald"]
186-
runner Amd64 Darwin = ["macOS-13"]
187-
runner AArch64 Darwin = ["self-hosted", "macOS", "ARM64"]
188-
runner Amd64 Windows = ["windows-latest"]
189-
runner AArch64 Windows = error "aarch64 windows not supported"
189+
runner Amd64 Darwin = ["macOS-13"]
190+
runner AArch64 Darwin = ["self-hosted", "macOS", "ARM64"]
191+
runner Amd64 Windows = ["windows-latest"]
192+
runner AArch64 Windows = error "aarch64 windows not supported"
190193

191194
-- | Runner selection for bindist jobs
192195
bindistRunner :: Arch -> Opsys -> [Value]
193-
bindistRunner Amd64 (Linux _) = ["self-hosted", "linux-space", "maerwald"]
196+
bindistRunner Amd64 (Linux _) = ["self-hosted", "linux-space", "maerwald"]
194197
bindistRunner AArch64 (Linux _) = ["self-hosted", "Linux", "ARM64", "maerwald"]
195-
bindistRunner Amd64 Darwin = ["macOS-13"]
196-
bindistRunner AArch64 Darwin = ["self-hosted", "macOS", "ARM64"]
197-
bindistRunner Amd64 Windows = ["windows-latest"]
198-
bindistRunner AArch64 Windows = error "aarch64 windows not supported"
198+
bindistRunner Amd64 Darwin = ["macOS-13"]
199+
bindistRunner AArch64 Darwin = ["self-hosted", "macOS", "ARM64"]
200+
bindistRunner Amd64 Windows = ["windows-latest"]
201+
bindistRunner AArch64 Windows = error "aarch64 windows not supported"
199202

200203
-------------------------------------------------------------------------------
201204
-- Action generatation
@@ -215,7 +218,7 @@ bindistRunner AArch64 Windows = error "aarch64 windows not supported"
215218
-- called 'actionName', located at 'actionPath'
216219
data Action
217220
= Action
218-
{ actionName :: String
221+
{ actionName :: String
219222
, actionDistro :: Distro
220223
}
221224

@@ -254,7 +257,7 @@ instance ToJSON Action where
254257

255258
configAction :: Config -> Maybe Action
256259
configAction (MkConfig Amd64 (Linux d) _) = Just $ Action (distroActionName d) d
257-
configAction _ = Nothing
260+
configAction _ = Nothing
258261

259262
distroActionName :: Distro -> String
260263
distroActionName d = "action-" ++ distroName d
@@ -274,7 +277,7 @@ customAction d st = flip (ghAction stepName (actionPath d)) [] $ case st of
274277
where
275278
stepName = case st of
276279
Build v -> "Build " ++ ghcVersion v
277-
Test -> "Test"
280+
Test -> "Test"
278281
Bindist -> "Bindist"
279282

280283
-------------------------------------------------------------------------------

.github/scripts/env.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ fi
3535

3636
export DEBIAN_FRONTEND=noninteractive
3737
export TZ=Asia/Singapore
38+
export LANG=en_US.UTF-8
39+
export LC_ALL=C.UTF-8

.github/scripts/test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ test_all_hls() {
6060
fi
6161
done
6262
# install the recommended GHC version so the wrapper can launch HLS
63-
ghcup install ghc --set 9.10.1
63+
ghcup install ghc --set 9.10.2
6464
"$bindir/haskell-language-server-wrapper${ext}" typecheck "${test_module}" || fail "failed to typecheck with HLS wrapper"
6565
}
6666

0 commit comments

Comments
 (0)