diff --git a/.circleci/config.yml b/.circleci/config.yml index cabf68d6b0..16e38ab318 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -103,6 +103,11 @@ jobs: - STACK_FILE: "stack-8.10.4.yaml" <<: *defaults + ghc-8.10.5: + environment: + - STACK_FILE: "stack-8.10.5.yaml" + <<: *defaults + ghc-9.0.1: environment: - STACK_FILE: "stack-9.0.1.yaml" @@ -126,5 +131,6 @@ workflows: - ghc-8.10.2 - ghc-8.10.3 - ghc-8.10.4 + - ghc-8.10.5 - ghc-9.0.1 - ghc-default diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 70d49f958c..ae64e4907b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - ghc: ['8.10.4', '8.10.3', '8.10.2', '8.8.4', '8.8.3', '8.8.2', '8.6.5', '8.6.4'] + ghc: ['8.10.5', '8.10.4', '8.10.3', '8.10.2', '8.8.4', '8.8.3', '8.8.2', '8.6.5', '8.6.4'] os: [ubuntu-18.04, macOS-latest, windows-latest] exclude: - os: windows-latest @@ -27,6 +27,8 @@ jobs: ghc: '8.8.3' # fails due to segfault - os: windows-latest ghc: '8.8.2' # fails due to error with Cabal + - os: macOS-latest + ghc: '8.10.5' # https://gitlab.haskell.org/ghc/ghc/-/issues/19968 include: - os: windows-latest ghc: '8.10.2.2' # only available for windows and choco @@ -113,11 +115,11 @@ jobs: path: ${{ steps.compress_server_binary.outputs.path }} - name: Build Wrapper - if: matrix.ghc == '8.10.4' + if: matrix.ghc == '8.10.5' run: cabal build exe:hls-wrapper -O2 $LINUX_CABAL_ARGS - name: Compress Wrapper Binary - if: matrix.ghc == '8.10.4' + if: matrix.ghc == '8.10.5' id: compress_wrapper_binary run: | HLS_WRAPPER_BUILD=$(find dist-newstyle \( -name 'hls-wrapper' -o -name 'hls-wrapper.exe' \) -type f) @@ -136,7 +138,7 @@ jobs: fi - name: Upload Wrapper - if: matrix.ghc == '8.10.4' + if: matrix.ghc == '8.10.5' uses: actions/upload-release-asset@v1.0.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -147,7 +149,7 @@ jobs: asset_content_type: ${{ steps.compress_wrapper_binary.outputs.content_type}} - uses: actions/upload-artifact@v2 - if: matrix.ghc == '8.10.4' + if: matrix.ghc == '8.10.5' with: name: haskell-language-server-wrapper-${{ runner.OS }}${{env.EXE_EXT}}.${{ steps.compress_wrapper_binary.outputs.extension }} path: ${{ steps.compress_wrapper_binary.outputs.path }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 34f7d4860b..9637180800 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,7 +33,7 @@ jobs: strategy: fail-fast: true matrix: - ghc: ["9.0.1", "8.10.4", "8.10.3", "8.10.2", "8.8.4", "8.8.3", "8.8.2", "8.6.5", "8.6.4"] + ghc: ["9.0.1", "8.10.5", "8.10.4", "8.10.3", "8.10.2", "8.8.4", "8.8.3", "8.8.2", "8.6.5", "8.6.4"] os: [ubuntu-latest, macOS-latest] include: # only test supported ghc major versions @@ -41,10 +41,7 @@ jobs: ghc: '9.0.1' test: true - os: ubuntu-latest - ghc: '8.10.4' - test: true - - os: windows-latest - ghc: '8.10.4' + ghc: '8.10.5' test: true - os: ubuntu-latest ghc: '8.8.4' @@ -52,17 +49,28 @@ jobs: - os: ubuntu-latest ghc: '8.6.5' test: true + # only build rest of supported ghc versions for windows + # Disable window test temporarily because choco does not have GHC 8.10.5 yet - os: windows-latest - ghc: '8.6.5' + ghc: '8.10.5' test: true - # only build rest of supported ghc versions for windows - os: windows-latest - ghc: '8.10.2.2' + ghc: '8.10.4' - os: windows-latest ghc: '8.10.3' + - os: windows-latest + ghc: '8.10.2.2' + - os: windows-latest + ghc: '8.6.5' + test: true # This build get stuck frequently # - os: windows-latest # ghc: '8.6.4' + exclude: + # Not able to build 'network' package + # See https://gitlab.haskell.org/ghc/ghc/-/issues/19968 + - os: macOS-latest + ghc: '8.10.5' steps: - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} diff --git a/cabal-ghc901.project b/cabal-ghc901.project index 017783b414..a293fa508d 100644 --- a/cabal-ghc901.project +++ b/cabal-ghc901.project @@ -51,7 +51,7 @@ source-repository-package source-repository-package type: git location: https://github.com/hsyl20/ghc-api-compat - tag: 6178d75772c7d923918dfffa0b1f503dfb36d0a6 + tag: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 source-repository-package type: git diff --git a/cabal.project b/cabal.project index 26b29981e7..d198b487b8 100644 --- a/cabal.project +++ b/cabal.project @@ -28,6 +28,12 @@ package * ghc-options: -haddock test-show-details: direct +-- ghc-api-compat-8.6 +source-repository-package + type: git + location: https://github.com/hsyl20/ghc-api-compat + tag: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 + write-ghc-environment-files: never index-state: 2021-05-21T05:01:41Z diff --git a/flake.nix b/flake.nix index 604f909b51..677f0a5c76 100644 --- a/flake.nix +++ b/flake.nix @@ -167,6 +167,7 @@ pkgs.haskellPackages.ghc.version); ghc884 = pkgs.hlsHpkgs "ghc884"; ghc8104 = pkgs.hlsHpkgs "ghc8104"; + ghc8105 = pkgs.hlsHpkgs "ghc8105"; ghc901 = pkgs.hlsHpkgs "ghc901"; # Create a development shell of hls project @@ -216,12 +217,14 @@ haskell-language-server-dev = mkDevShell ghcDefault; haskell-language-server-884-dev = mkDevShell ghc884; haskell-language-server-8104-dev = mkDevShell ghc8104; + haskell-language-server-8105-dev = mkDevShell ghc8105; haskell-language-server-901-dev = mkDevShell ghc901; # hls package haskell-language-server = mkExe ghcDefault; haskell-language-server-884 = mkExe ghc884; haskell-language-server-8104 = mkExe ghc8104; + haskell-language-server-8105 = mkExe ghc8105; haskell-language-server-901 = mkExe ghc901; }; diff --git a/ghcide/ghcide.cabal b/ghcide/ghcide.cabal index dc41bb9999..20aedb7f92 100644 --- a/ghcide/ghcide.cabal +++ b/ghcide/ghcide.cabal @@ -13,7 +13,7 @@ description: A library for building Haskell IDE's on top of the GHC API. homepage: https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme bug-reports: https://github.com/haskell/haskell-language-server/issues -tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 || == 9.0.1 +tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 || == 8.10.5 || == 9.0.1 extra-source-files: README.md CHANGELOG.md test/data/**/*.project test/data/**/*.cabal diff --git a/ghcide/test/exe/Main.hs b/ghcide/test/exe/Main.hs index ede8f20822..3c0db29088 100644 --- a/ghcide/test/exe/Main.hs +++ b/ghcide/test/exe/Main.hs @@ -3653,6 +3653,9 @@ checkFileCompiles fp diag = pluginSimpleTests :: TestTree pluginSimpleTests = ignoreInWindowsForGHC88And810 $ +#if __GLASGOW_HASKELL__ == 810 && __GLASGOW_HASKELL_PATCHLEVEL1__ == 5 + expectFailBecause "known broken (see GHC #19763)" $ +#endif testSessionWithExtraFiles "plugin-knownnat" "simple plugin" $ \dir -> do _ <- openDoc (dir "KnownNat.hs") "haskell" liftIO $ writeFile (dir"hie.yaml") diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index f9ad2379f6..50424693ac 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -14,7 +14,7 @@ copyright: The Haskell IDE Team license: Apache-2.0 license-file: LICENSE build-type: Simple -tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 +tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 || == 8.10.5 extra-source-files: README.md ChangeLog.md diff --git a/stack-8.10.2.yaml b/stack-8.10.2.yaml index 7475853df9..ce833e756a 100644 --- a/stack-8.10.2.yaml +++ b/stack-8.10.2.yaml @@ -36,7 +36,9 @@ extra-deps: - data-tree-print-0.1.0.2@rev:2 - floskell-0.10.4 - fourmolu-0.3.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-exactprint-0.6.4 - ghc-lib-8.10.4.20210206 diff --git a/stack-8.10.3.yaml b/stack-8.10.3.yaml index c3d2ffa67c..250c3c0d31 100644 --- a/stack-8.10.3.yaml +++ b/stack-8.10.3.yaml @@ -36,7 +36,9 @@ extra-deps: - data-tree-print-0.1.0.2@rev:2 - floskell-0.10.4 - fourmolu-0.3.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-exactprint-0.6.4 - ghc-lib-8.10.4.20210206 diff --git a/stack-8.10.4.yaml b/stack-8.10.4.yaml index 7c7f25ddeb..bcfad67469 100644 --- a/stack-8.10.4.yaml +++ b/stack-8.10.4.yaml @@ -36,7 +36,9 @@ extra-deps: - data-tree-print-0.1.0.2@rev:2 - floskell-0.10.4 - fourmolu-0.3.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-exactprint-0.6.4 - heapsize-0.3.0 diff --git a/stack-8.10.5.yaml b/stack-8.10.5.yaml new file mode 100644 index 0000000000..094d96c1d2 --- /dev/null +++ b/stack-8.10.5.yaml @@ -0,0 +1,98 @@ +# Fixme once GHC-8.10.5 LTS is out +resolver: nightly-2021-06-01 +compiler: ghc-8.10.5 + +packages: + - . + - ./hie-compat + - ./hls-graph + - ./ghcide/ + - ./hls-plugin-api + - ./hls-test-utils + # - ./shake-bench + - ./plugins/hls-class-plugin + - ./plugins/hls-haddock-comments-plugin + - ./plugins/hls-eval-plugin + - ./plugins/hls-explicit-imports-plugin + - ./plugins/hls-refine-imports-plugin + - ./plugins/hls-hlint-plugin + - ./plugins/hls-retrie-plugin + - ./plugins/hls-splice-plugin + - ./plugins/hls-tactics-plugin + - ./plugins/hls-brittany-plugin + - ./plugins/hls-stylish-haskell-plugin + - ./plugins/hls-floskell-plugin + - ./plugins/hls-fourmolu-plugin + - ./plugins/hls-pragmas-plugin + - ./plugins/hls-module-name-plugin + - ./plugins/hls-ormolu-plugin + +ghc-options: + "$everything": -haddock + +extra-deps: + - apply-refact-0.9.3.0 + - brittany-0.13.1.2 + - Cabal-3.0.2.0 + - clock-0.7.2 + - data-tree-print-0.1.0.2@rev:2 + - floskell-0.10.5 + - fourmolu-0.3.0.0 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 + - ghc-check-0.5.0.4 + - ghc-exactprint-0.6.4 + - heapsize-0.3.0 + - implicit-hie-cradle-0.3.0.2 + - implicit-hie-0.1.2.5 + - monad-dijkstra-0.1.1.2 + - refinery-0.3.0.0 + - retrie-1.0.0.0 + - stylish-haskell-0.12.2.0 + - semigroups-0.18.5 + - temporary-1.2.1.1 + - th-compat-0.1.2@sha256:3d55de1adc542c1a870c9ada90da2fbbe5f4e8bcd3eed545a55c3df9311b32a8,2854 + - bytestring-encoding-0.1.0.0@sha256:460b49779fbf0112e8e2f1753c1ed9131eb18827600c298f4d6bb51c4e8c1c0d,1727 + - hiedb-0.3.0.1 + - lsp-1.2.0.0 + - lsp-types-1.2.0.0 + - lsp-test-0.14.0.0 + - dependent-map-0.4.0.0@sha256:ca2b131046f4340a1c35d138c5a003fe4a5be96b14efc26291ed35fd08c62221,1657 + - dependent-sum-0.7.1.0@sha256:5599aa89637db434431b1dd3fa7c34bc3d565ee44f0519bfbc877be1927c2531,2068 + - dependent-sum-template-0.1.0.3@sha256:0bbbacdfbd3abf2a15aaf0cf2c27e5bdd159b519441fec39e1e6f2f54424adde,1682 + - constraints-extras-0.3.1.0 + - some-1.0.1@sha256:26e5bab7276f48b25ea8660d3fd1166c0f20fd497dac879a40f408e23211f93e,2055 + - unliftio-core-0.2.0.1@sha256:9b3e44ea9aacacbfc35b3b54015af450091916ac3618a41868ebf6546977659a,1082 + + # Enable these when supported by all formatters + # - ghc-lib-9.0.1.20210324@sha256:c8b9a2541ea3424c8d0e4f80584477d0f35be03f4a47d931152042d5f446c5fc,19279 + # - ghc-lib-parser-9.0.1.20210324@sha256:fb680f78d4ab08b5d089a05bda3b84ad857e5edcc2e4ca7c188c0207d369af80 + # - ghc-lib-parser-ex-9.0.0.4@sha256:8282b11c3797fc8ba225b245e736cc9a0745d9c48d0f9fea7f9bffb5c9997709,3642 + # - hlint-3.3@sha256:4218ad6e03050f5d68aeba0e025f5f05e366c8fd49657f2a19df04ee31b2bb23,4154 + +configure-options: + ghcide: + - --disable-library-for-ghci + haskell-language-server: + - --disable-library-for-ghci + heapsize: + - --disable-library-for-ghci + +flags: + haskell-language-server: + pedantic: true + retrie: + BuildExecutable: false + # Stack doesn't support automatic flags. + # Until the formatters support ghc-lib-9, we need this flag disabled + hls-hlint-plugin: + hlint33: false + +# Because of implicit-hie-cradle-0.3.0.2 and stylish-haskell-0.12.2.0 +allow-newer: true + +nix: + packages: [ icu libcxx zlib ] + +concurrent-tests: false diff --git a/stack-8.6.4.yaml b/stack-8.6.4.yaml index 57f52c0428..548297d594 100644 --- a/stack-8.6.4.yaml +++ b/stack-8.6.4.yaml @@ -43,7 +43,9 @@ extra-deps: - floskell-0.10.4 - fourmolu-0.3.0.0 - fuzzy-0.1.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-events-0.13.0 - ghc-exactprint-0.6.4 diff --git a/stack-8.6.5.yaml b/stack-8.6.5.yaml index 257d5c4274..44c8193f32 100644 --- a/stack-8.6.5.yaml +++ b/stack-8.6.5.yaml @@ -44,7 +44,9 @@ extra-deps: - floskell-0.10.4 - fourmolu-0.3.0.0 - fuzzy-0.1.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-events-0.13.0 - ghc-exactprint-0.6.4 diff --git a/stack-8.8.2.yaml b/stack-8.8.2.yaml index 06f346efe1..bc4a3441e7 100644 --- a/stack-8.8.2.yaml +++ b/stack-8.8.2.yaml @@ -38,7 +38,9 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.4 - fourmolu-0.3.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-events-0.13.0 - ghc-exactprint-0.6.4 diff --git a/stack-8.8.3.yaml b/stack-8.8.3.yaml index 8f706b0099..3788c4d617 100644 --- a/stack-8.8.3.yaml +++ b/stack-8.8.3.yaml @@ -38,7 +38,9 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.4 - fourmolu-0.3.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-exactprint-0.6.4 - ghc-lib-8.10.4.20210206 diff --git a/stack-8.8.4.yaml b/stack-8.8.4.yaml index 1a0fe87220..9fb15da735 100644 --- a/stack-8.8.4.yaml +++ b/stack-8.8.4.yaml @@ -38,7 +38,9 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.4 - fourmolu-0.3.0.0 - - ghc-api-compat-8.6 + - # ghc-api-compat-8.6 + github: hsyl20/ghc-api-compat + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - ghc-check-0.5.0.4 - ghc-exactprint-0.6.4 - ghc-lib-8.10.4.20210206 diff --git a/stack-9.0.1.yaml b/stack-9.0.1.yaml index 452167ea1b..086bd185d8 100644 --- a/stack-9.0.1.yaml +++ b/stack-9.0.1.yaml @@ -68,7 +68,7 @@ extra-deps: # https://github.com/mpickering/hie-bios/pull/285 - github: hsyl20/ghc-api-compat - commit: 6178d75772c7d923918dfffa0b1f503dfb36d0a6 + commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15 - github: anka-213/th-extras commit: 57a97b4df128eb7b360e8ab9c5759392de8d1659