Skip to content

Commit d7f9f02

Browse files
committed
Purge GHC 8.8
We're also dropping support for this.
1 parent 5cdaa24 commit d7f9f02

File tree

47 files changed

+66
-2615
lines changed

Some content is hidden

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

47 files changed

+66
-2615
lines changed

Diff for: .circleci/config.yml

-6
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,6 @@ defaults: &defaults
7575

7676
version: 2
7777
jobs:
78-
stackage-lts16:
79-
environment:
80-
- STACK_FILE: "stack-lts16.yaml"
81-
<<: *defaults
82-
8378
stackage-lts19:
8479
environment:
8580
- STACK_FILE: "stack-lts19.yaml"
@@ -95,6 +90,5 @@ workflows:
9590
version: 2
9691
multiple-ghcs:
9792
jobs:
98-
- stackage-lts16
9993
- stackage-lts19
10094
- stackage-nightly

Diff for: .github/workflows/caching.yml

-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ jobs:
8484
, "9.2.3"
8585
, "9.0.2"
8686
, "8.10.7"
87-
, "8.8.4"
8887
]
8988
os: [ "ubuntu-latest"
9089
, "macOS-latest"

Diff for: .github/workflows/flags.yml

-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ jobs:
4747
ghc: [ "9.2.4"
4848
, "9.0.2"
4949
, "8.10.7"
50-
, "8.8.4"
5150
]
5251
os: [ "ubuntu-latest"
5352
]

Diff for: .github/workflows/hackage.yml

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ jobs:
4040
"haskell-language-server"]
4141
ghc: [ "9.0.2"
4242
, "8.10.7"
43-
, "8.8.4"
4443
]
4544
exclude:
4645
- ghc: "9.0.2"

Diff for: .github/workflows/test.yml

+30-37
Large diffs are not rendered by default.

Diff for: .gitpod.Dockerfile

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ RUN sudo install-packages build-essential curl libffi-dev libffi7 libgmp-dev lib
77
echo 'export PATH=$HOME/.cabal/bin:$HOME/.local/bin:$PATH' >> $HOME/.bashrc && \
88
. /home/gitpod/.ghcup/env && \
99
# Install all verions of GHC that HLS supports. Putting GHC into Docker image makes workspace start much faster.
10-
ghcup install ghc 8.8.4 && \
1110
ghcup install ghc 8.10.7 && \
1211
ghcup install ghc 9.0.2 && \
1312
ghcup install ghc 9.2.3 && \

Diff for: bindist/ghcs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
8.8.4,cabal.project
21
8.10.7,cabal.project
32
9.0.2,cabal.project
43
9.2.3,cabal.project

Diff for: docs/contributing/contributing.md

+2-6
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,14 @@ If you are using nix 2.4 style command (enabled by `experimental-features = nix-
5151
you can use `nix develop` instead of `nix-shell` to enter the development shell. To enter the shell with specific GHC versions:
5252

5353
* `nix develop` or `nix develop .#haskell-language-server-dev` - default GHC version
54-
* `nix develop .#haskell-language-server-8107-dev` - GHC 8.10.7
55-
* `nix develop .#haskell-language-server-884-dev` - GHC 8.8.4
56-
* `nix develop .#haskell-language-server-901-dev` - GHC 9.0.1
54+
* `nix develop .#haskell-language-server-901-dev` - GHC 9.0.1 (substitute GHC version as appropriate)
5755

5856
If you are looking for a Nix expression to create haskell-language-server binaries, see https://github.com/haskell/haskell-language-server/issues/122
5957

6058
To create binaries:
6159

6260
* `nix build` or `nix build .#haskell-language-server` - default GHC version
63-
* `nix build .#haskell-language-server-8107` - GHC 8.10.7
64-
* `nix build .#haskell-language-server-884` - GHC 8.8.4
65-
* `nix build .#haskell-language-server-901` - GHC 9.0.1
61+
* `nix build .#haskell-language-server-901` - GHC 9.0.1 (substitute GHC version as appropriate)
6662

6763
## Testing
6864

Diff for: docs/contributing/plugin-tutorial.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ And here is the gist of the algorithm:
3434

3535
## Setup
3636

37-
To get started, let’s fetch the HLS repo and build it. You need at least GHC 8.8 for this:
37+
To get started, let’s fetch the HLS repo and build it. You need at least GHC 8.10 for this:
3838

3939
```
4040
git clone --recursive http://github.com/haskell/haskell-language-server hls

Diff for: docs/installation.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ Homebrew users can install `haskell-language-server` using the following command
157157
brew install haskell-language-server
158158
```
159159

160-
This formula contains HLS binaries compiled with GHC versions available via Homebrew; at the moment those are: 8.8.4, 8.10.7.
160+
This formula contains HLS binaries compiled with GHC versions available via Homebrew; at the moment those are: 8.10.7.
161161

162162
You need to provide your own GHC/Cabal/Stack as required by your project, possibly via Homebrew.
163163

Diff for: docs/support/ghc-version-support.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Support status (see the support policy below for more details):
2929
| 8.10.5 | [1.5.1](https://github.com/haskell/haskell-language-server/releases/tag/1.5.1) | deprecated |
3030
| 8.10.(4,3,2) | [1.4.0](https://github.com/haskell/haskell-language-server/releases/tag/1.4.0) | deprecated |
3131
| 8.10.1 | [0.9.0](https://github.com/haskell/haskell-language-server/releases/tag/0.9.0) | deprecated |
32-
| 8.8.4 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | full support, will be deprecated after LTS and HLS full support for ghc-9.2 |
32+
| 8.8.4 | [1.8.0](https://github.com/haskell/haskell-language-server/releases/1.8.0) | deprecated |
3333
| 8.8.3 | [1.5.1](https://github.com/haskell/haskell-language-server/releases/1.5.1) | deprecated |
3434
| 8.8.2 | [1.2.0](https://github.com/haskell/haskell-language-server/releases/tag/1.2.0) | deprecated |
3535
| 8.6.5 | [1.8.0.0](https://github.com/haskell/haskell-language-server/releases/tag/1.8.0.0) | deprecated |

Diff for: ghcide-bench/ghcide-bench.cabal

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ synopsis: An LSP client for running performance experiments on HLS
1212
description: An LSP client for running performance experiments on HLS
1313
homepage: https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme
1414
bug-reports: https://github.com/haskell/haskell-language-server/issues
15-
tested-with: GHC == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.3 || == 9.2.4
15+
tested-with: GHC == 8.10.7 || == 9.0.2 || == 9.2.3 || == 9.2.4
1616

1717
source-repository head
1818
type: git

Diff for: ghcide/ghcide.cabal

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ description:
1313
A library for building Haskell IDE's on top of the GHC API.
1414
homepage: https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme
1515
bug-reports: https://github.com/haskell/haskell-language-server/issues
16-
tested-with: GHC == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.3 || == 9.2.4
16+
tested-with: GHC == 8.10.7 || == 9.0.2 || == 9.2.3 || == 9.2.4
1717
extra-source-files: README.md CHANGELOG.md
1818
test/data/**/*.project
1919
test/data/**/*.cabal
@@ -99,7 +99,7 @@ library
9999
unliftio-core,
100100
ghc-boot-th,
101101
ghc-boot,
102-
ghc >= 8.8,
102+
ghc >= 8.10,
103103
ghc-check >=0.5.0.8,
104104
ghc-paths,
105105
cryptohash-sha1 >=0.11.100 && <0.12,

Diff for: ghcide/src/Development/IDE/Core/Compile.hs

+1-17
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,6 @@ import System.FilePath
104104
import System.IO.Extra (fixIO, newTempFileWithin)
105105
import Unsafe.Coerce
106106

107-
#if !MIN_VERSION_ghc(8,10,0)
108-
import ErrUtils
109-
#endif
110-
111107
#if MIN_VERSION_ghc(9,0,1)
112108
import GHC.Tc.Gen.Splice
113109

@@ -482,11 +478,9 @@ mkHiFileResultCompile se session' tcm simplified_guts = catchErrs $ do
482478
Nothing
483479
#endif
484480

485-
#elif MIN_VERSION_ghc(8,10,0)
481+
#else
486482
let !partial_iface = force (mkPartialIface session details simplified_guts)
487483
final_iface <- mkFullIface session partial_iface
488-
#else
489-
(final_iface,_) <- mkIface session Nothing details simplified_guts
490484
#endif
491485

492486
-- Write the core file now
@@ -637,11 +631,7 @@ generateObjectCode session summary guts = do
637631
#else
638632
(outputFilename, _mStub, _foreign_files) <- hscGenHardCode session' guts
639633
#endif
640-
#if MIN_VERSION_ghc(8,10,0)
641634
(ms_location summary)
642-
#else
643-
summary
644-
#endif
645635
fp
646636
obj <- compileFile session' driverNoStop (outputFilename, Just (As False))
647637
#if MIN_VERSION_ghc(9,3,0)
@@ -670,11 +660,7 @@ generateByteCode (CoreFileTime time) hscEnv summary guts = do
670660
-- TODO: maybe settings ms_hspp_opts is unnecessary?
671661
summary' = summary { ms_hspp_opts = hsc_dflags session }
672662
hscInteractive session guts
673-
#if MIN_VERSION_ghc(8,10,0)
674663
(ms_location summary')
675-
#else
676-
summary'
677-
#endif
678664
let unlinked = BCOs bytecode sptEntries
679665
let linkable = LM time (ms_mod summary) [unlinked]
680666
pure (map snd warnings, linkable)
@@ -739,9 +725,7 @@ unnecessaryDeprecationWarningFlags
739725
, Opt_WarnUnusedMatches
740726
, Opt_WarnUnusedTypePatterns
741727
, Opt_WarnUnusedForalls
742-
#if MIN_VERSION_ghc(8,10,0)
743728
, Opt_WarnUnusedRecordWildcards
744-
#endif
745729
, Opt_WarnInaccessibleCode
746730
, Opt_WarnWarningsDeprecations
747731
]

Diff for: ghcide/src/Development/IDE/GHC/CPP.hs

+3-20
Original file line numberDiff line numberDiff line change
@@ -16,51 +16,34 @@ module Development.IDE.GHC.CPP(doCpp, addOptP)
1616
where
1717

1818
import Development.IDE.GHC.Compat as Compat
19-
import GHC
20-
#if !MIN_VERSION_ghc(8,10,0)
21-
import qualified Development.IDE.GHC.Compat.CPP as CPP
22-
#else
2319
import Development.IDE.GHC.Compat.Util
24-
#endif
20+
import GHC
2521

2622
#if MIN_VERSION_ghc(9,0,0)
2723
import qualified GHC.Driver.Pipeline as Pipeline
2824
import GHC.Settings
29-
#else
30-
#if MIN_VERSION_ghc (8,10,0)
25+
#elif MIN_VERSION_ghc (8,10,0)
3126
import qualified DriverPipeline as Pipeline
3227
import ToolSettings
33-
#else
34-
import DynFlags
35-
#endif
3628
#endif
3729
#if MIN_VERSION_ghc(9,3,0)
3830
import qualified GHC.Driver.Pipeline.Execute as Pipeline
3931
#endif
4032

4133
addOptP :: String -> DynFlags -> DynFlags
42-
#if MIN_VERSION_ghc (8,10,0)
4334
addOptP f = alterToolSettings $ \s -> s
4435
{ toolSettings_opt_P = f : toolSettings_opt_P s
4536
, toolSettings_opt_P_fingerprint = fingerprintStrings (f : toolSettings_opt_P s)
4637
}
4738
where
4839
fingerprintStrings ss = fingerprintFingerprints $ map fingerprintString ss
4940
alterToolSettings f dynFlags = dynFlags { toolSettings = f (toolSettings dynFlags) }
50-
#else
51-
addOptP opt = onSettings (onOptP (opt:))
52-
where
53-
onSettings f x = x{settings = f $ settings x}
54-
onOptP f x = x{sOpt_P = f $ sOpt_P x}
55-
#endif
5641

5742
doCpp :: HscEnv -> Bool -> FilePath -> FilePath -> IO ()
5843
doCpp env raw input_fn output_fn =
5944
#if MIN_VERSION_ghc (9,2,0)
6045
Pipeline.doCpp (hsc_logger env) (hsc_tmpfs env) (hsc_dflags env) (hsc_unit_env env) raw input_fn output_fn
61-
#elif MIN_VERSION_ghc (8,10,0)
62-
Pipeline.doCpp (hsc_dflags env) raw input_fn output_fn
6346
#else
64-
CPP.doCpp (hsc_dflags env) raw input_fn output_fn
47+
Pipeline.doCpp (hsc_dflags env) raw input_fn output_fn
6548
#endif
6649

Diff for: ghcide/src/Development/IDE/GHC/Compat.hs

+2-24
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,6 @@ import Data.List (foldl')
244244
import qualified Data.Map as Map
245245
import qualified Data.Set as S
246246

247-
#if !MIN_VERSION_ghc(8,10,0)
248-
import Bag (unitBag)
249-
#endif
250-
251247
#if MIN_VERSION_ghc(9,2,0)
252248
import GHC.Builtin.Uniques
253249
import GHC.ByteCode.Types
@@ -404,17 +400,10 @@ pattern PFailedWithErrorMessages msgs
404400
#else
405401
<- PFailed (const . fmap pprError . getErrorMessages -> msgs)
406402
#endif
407-
#elif MIN_VERSION_ghc(8,10,0)
408-
pattern PFailedWithErrorMessages :: (DynFlags -> ErrorMessages) -> ParseResult a
409-
pattern PFailedWithErrorMessages msgs
410-
<- PFailed (getErrorMessages -> msgs)
411403
#else
412404
pattern PFailedWithErrorMessages :: (DynFlags -> ErrorMessages) -> ParseResult a
413405
pattern PFailedWithErrorMessages msgs
414-
<- ((fmap.fmap) unitBag . mkPlainErrMsgIfPFailed -> Just msgs)
415-
416-
mkPlainErrMsgIfPFailed (PFailed _ pst err) = Just (\dflags -> mkPlainErrMsg dflags pst err)
417-
mkPlainErrMsgIfPFailed _ = Nothing
406+
<- PFailed (getErrorMessages -> msgs)
418407
#endif
419408
{-# COMPLETE POk, PFailedWithErrorMessages #-}
420409

@@ -488,24 +477,16 @@ nameListFromAvails as =
488477

489478

490479
getModuleHash :: ModIface -> Fingerprint
491-
#if MIN_VERSION_ghc(8,10,0)
492480
getModuleHash = mi_mod_hash . mi_final_exts
493-
#else
494-
getModuleHash = mi_mod_hash
495-
#endif
496481

497482

498483
disableWarningsAsErrors :: DynFlags -> DynFlags
499484
disableWarningsAsErrors df =
500485
flip gopt_unset Opt_WarnIsError $ foldl' wopt_unset_fatal df [toEnum 0 ..]
501486

502487
isQualifiedImport :: ImportDecl a -> Bool
503-
#if MIN_VERSION_ghc(8,10,0)
504488
isQualifiedImport ImportDecl{ideclQualified = NotQualified} = False
505489
isQualifiedImport ImportDecl{} = True
506-
#else
507-
isQualifiedImport ImportDecl{ideclQualified} = ideclQualified
508-
#endif
509490
isQualifiedImport _ = False
510491

511492

@@ -566,8 +547,7 @@ generatedNodeInfo = sourceNodeInfo -- before ghc 9.0, we don't distinguish the s
566547
#endif
567548

568549
data GhcVersion
569-
= GHC88
570-
| GHC810
550+
= GHC810
571551
| GHC90
572552
| GHC92
573553
| GHC94
@@ -585,8 +565,6 @@ ghcVersion = GHC92
585565
ghcVersion = GHC90
586566
#elif MIN_VERSION_GLASGOW_HASKELL(8,10,0,0)
587567
ghcVersion = GHC810
588-
#elif MIN_VERSION_GLASGOW_HASKELL(8,8,0,0)
589-
ghcVersion = GHC88
590568
#endif
591569

592570
runUnlit :: Logger -> DynFlags -> [Option] -> IO ()

Diff for: ghcide/src/Development/IDE/GHC/Compat/CPP.hs

-4
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,7 @@ doCpp dflags raw input_fn output_fn = do
4848
let verbFlags = getVerbFlags dflags
4949

5050
let cpp_prog args | raw = SysTools.runCpp dflags args
51-
#if MIN_VERSION_ghc(8,10,0)
5251
| otherwise = SysTools.runCc Nothing
53-
#else
54-
| otherwise = SysTools.runCc
55-
#endif
5652
dflags (SysTools.Option "-E" : args)
5753

5854
let target_defs =

0 commit comments

Comments
 (0)