diff --git a/.ci/stack-9.6.yaml b/.ci/stack-9.6.yaml new file mode 100644 index 0000000000..c29e6e4a98 --- /dev/null +++ b/.ci/stack-9.6.yaml @@ -0,0 +1,27 @@ +resolver: lts-22.9 + +ghc-options: + "$locals": -Wall -Wcompat + +packages: +- clash-prelude +- clash-prelude-hedgehog +- clash-lib +- clash-lib-hedgehog +- clash-ghc +- clash-cores +- tests + +extra-deps: +- ansi-terminal-0.11.5@sha256:2fe3d006b9ea0dc1a5537a029edb0bc2bbe56a33a6d95264b38b54c58e931e51,3752 +- hedgehog-1.2@sha256:cb20b0f1dad7a7e4461085ea2d8ef084a19d0d5f137133bf88d1fd2f7ce9a5aa,4561 +- hedgehog-fakedata-0.0.1.5@sha256:d8059e4ef9b7b4112bef9791300118f3a2d776bb191e50b41635a411af609428,1424 +- tasty-1.5@sha256:c62c96da1e9d65bf61ce583e9f7085eed1daeb62a45f3106ca252bf9ef87025b,2763 + +# TODO: Remove this workaround. See: +# +# https://github.com/clash-lang/clash-compiler/pull/2665#issuecomment-1939044550 +- git: https://github.com/haskell/cabal.git + commit: a3865991986361b3a736007f620b6a8878d178e3 + subdirs: + - Cabal diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a2c0ee35fc..5d61731161 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: fail-fast: false matrix: os: ["macOS", "windows"] - ghc: ["8.6", "8.8", "8.10", "9.0", "9.2", "9.4"] + ghc: ["8.6", "8.8", "8.10", "9.0", "9.2", "9.4", "9.6"] exclude: # Some tests fail with a mysterious -11 error code. - os: macOS @@ -64,7 +64,7 @@ jobs: if: ${{ runner.os == 'Windows' }} uses: actions/cache@v3 with: - # On windows we have to use "\" as a path seperator, otherwise caching fails + # On windows we have to use "\" as a path separator, otherwise caching fails path: | ${{ steps.setup-haskell.outputs.stack-root }}\snapshots key: ${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('stack.yaml', '**/*.cabal', '.github/workflows/ci.yml') }} diff --git a/README.md b/README.md index cf87134c49..2a64e57b3d 100644 --- a/README.md +++ b/README.md @@ -65,20 +65,18 @@ Note that release branches might contain non-released patches. ## GHC compatibility | | Linux | Windows | macOS | Clash (released) | Clash (development version) |------|-------|---------|-------|------------------|-------------------------- -| 8.6 | ✔️ | ✔️ | ✔️ | 1.0 - 1.6 | ✔️ -| 8.8 | ✔️ | ❌ | ✔️ | 1.0 - 1.6 | ✔️ -| 8.10 | ✔️ | ✔️ | ❌ | 1.2 - 1.6 | ✔️ -| 9.0 | ✔️ | ✔️² | ✔️ | 1.4 - 1.6 | ✔️ -| 9.2 | ⚠️¹ | ⚠️¹ | ⚠️¹ | | ⚠️¹️ -| 9.4 | ✔️ | ✔️ | ✔️ | | ✔️ -| 9.6 | ✔️ | ❔³ | ❔³ | | ✔️ +| 8.6 | ✔️ | ✔️ | ✔️ | 1.0 - 1.8 | ✔️ +| 8.8 | ✔️ | ❌ | ✔️ | 1.0 - 1.8 | ✔️ +| 8.10 | ✔️ | ✔️ | ❌ | 1.2 - 1.8 | ✔️ +| 9.0 | ✔️ | ✔️² | ✔️ | 1.4 - 1.8 | ✔️ +| 9.2 | ⚠️¹ | ⚠️¹ | ⚠️¹ | 1.8 | ⚠️¹️ +| 9.4 | ✔️ | ✔️ | ✔️ | 1.8 | ✔️ +| 9.6 | ✔️ | ✔️ | ✔️ | 1.8 | ✔️ ¹ GHC 9.2 contains a regression, rendering Clash error messages indecipherable. This change was reverted in 9.4. ² GHC 9.0.2 on Windows fails to compile `clash-cores`. We therefore don't run the Clash testsuite on CI for this combination. -³ We use Stack to test on Windows/macOS. There is no resolver yet that uses GHC 9.6, so this remains untested. - ## Cabal To use Cabal you need both Cabal and GHC installed on your system. We recommend using [ghcup](https://www.haskell.org/ghcup/). For more information, see [https://www.haskell.org/downloads/](https://www.haskell.org/downloads/). diff --git a/clash-cores/clash-cores.cabal b/clash-cores/clash-cores.cabal index 264156f5da..dd4a9beef9 100644 --- a/clash-cores/clash-cores.cabal +++ b/clash-cores/clash-cores.cabal @@ -12,7 +12,10 @@ maintainer: devops@qbaylogic.com copyright: Copyright © 2019 , Foamspace Corp., 2022-2023, QBayLogic B.V. category: Hardware -build-type: Simple +-- TODO: Revert to "Simple". See: +-- +-- https://github.com/clash-lang/clash-compiler/pull/2665#issuecomment-1939044550 +build-type: Custom extra-source-files: CHANGELOG.md flag doctests @@ -39,6 +42,14 @@ flag nix default: False manual: True +-- TODO: Remove this workaround. See: +-- +-- https://github.com/clash-lang/clash-compiler/pull/2665#issuecomment-1939044550 +custom-setup + setup-depends: + base, + Cabal + common basic-config default-language: Haskell2010