diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index 52dac5d6..46846fae 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -2,29 +2,33 @@ name: massiv-CI on: push: - branches: [ '*' ] + branches: [ "master", "release/**" ] pull_request: - branches: [ master ] + branches: [ "**" ] schedule: - cron: "0 5 * * 5" defaults: { run: { shell: bash } } -# Cancel running actions when a new action on the same PR is started +# Cancel running workflows when a new workflow on the same PR or branch is started, +# but put scheduled workflows into their own group concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + group: ${{ + format('{0}-{1}{2}', + github.workflow, + github.event.pull_request.number || github.ref, + github.event_name == 'schedule' && '-scheduled' || '')}} cancel-in-progress: true jobs: massiv-test-with-stack: - if: github.event.pull_request.head.repo.full_name != github.repository name: Stack runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest, macOS-latest, windows-latest] - resolver: [lts-11, lts-12, lts-14, lts-16, lts-18, lts-19, lts-20, lts-21, nightly] + os: [ubuntu-latest, macOS-13, windows-latest] + resolver: [lts-11, lts-12, lts-14, lts-16, lts-18, lts-19, lts-20, lts-21, lts-22, nightly] include: - resolver: lts-11 ghc: '8.2.2' @@ -41,22 +45,20 @@ jobs: - resolver: lts-20 ghc: '9.2.8' - resolver: lts-21 - ghc: '9.4.7' + ghc: '9.4.8' + - resolver: lts-22 + ghc: '9.6.5' - resolver: nightly - ghc: '9.6.3' - exclude: - - resolver: lts-11 - os: windows-latest # doctests.exe: getPermissions: does not exist - - resolver: lts-12 - os: windows-latest # internal error: evacuate: strange closure type 91016001 - - resolver: lts-14 - os: windows-latest # OOM on building Test.Massiv.VectorSpec - - resolver: lts-16 - os: windows-latest # OOM on building Test.Massiv.VectorSpec - - resolver: lts-18 - os: windows-latest # Too buggy, occasional ghc crashes - - resolver: lts-20 - os: windows-latest # Can't install ghc + ghc: '9.8.2' + # exclude: + # - resolver: lts-12 + # os: windows-latest + # - resolver: lts-14 + # os: windows-latest + # # - resolver: lts-16 + # # os: windows-latest # OOM on building Test.Massiv.VectorSpec + # - resolver: lts-18 + # os: windows-latest # Too buggy, occasional ghc crashes env: STACK_YAML: 'stack.ghc-${{ matrix.ghc }}.yaml' @@ -71,7 +73,7 @@ jobs: with: ghc-version: ${{ matrix.ghc }} enable-stack: true - stack-version: 'latest' + stack-version: '2.15.5' - name: Cache id: cache @@ -105,7 +107,7 @@ jobs: COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} run: | set -ex - if [ "${{ matrix.os }}.${{ matrix.resolver }}" == "ubuntu-latest.lts-19" ] && [ -n "${COVERALLS_TOKEN}" ]; then + if [ "${{ matrix.os }}.${{ matrix.resolver }}" == "ubuntu-latest.lts-21" ] && [ -n "${COVERALLS_TOKEN}" ]; then stack $STACK_ARGS test massiv-test:tests --coverage --no-run-tests --haddock --no-haddock-deps else stack $STACK_ARGS test --no-run-tests --haddock --no-haddock-deps @@ -115,7 +117,7 @@ jobs: COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} run: | set -ex - if [ "${{ matrix.os }}.${{ matrix.resolver }}" == "ubuntu-latest.lts-19" ] && [ -n "${COVERALLS_TOKEN}" ]; then + if [ "${{ matrix.os }}.${{ matrix.resolver }}" == "ubuntu-latest.lts-21" ] && [ -n "${COVERALLS_TOKEN}" ]; then stack $STACK_ARGS test massiv-test:tests --coverage stack $STACK_ARGS hpc report --all curl -L https://github.com/rubik/stack-hpc-coveralls/releases/download/v0.0.7.0/shc-Linux-X64.tar.bz2 | tar xj shc @@ -126,7 +128,6 @@ jobs: fi massiv-test-with-cabal: - if: github.event.pull_request.head.repo.full_name != github.repository name: Cabal runs-on: ${{ matrix.os }} strategy: @@ -135,25 +136,40 @@ jobs: include: - { os: ubuntu-latest, ghc: "8.0.2" } - { os: ubuntu-latest, ghc: "8.2.2" } + - { os: ubuntu-latest, ghc: "8.4.4" } + - { os: ubuntu-latest, ghc: "8.6.5" } + - { os: ubuntu-latest, ghc: "8.8.4" } + - { os: ubuntu-latest, ghc: "8.10.7" } - { os: ubuntu-latest, ghc: "9.0.2" } - - { os: ubuntu-latest, ghc: "9.2.7" } - - { os: ubuntu-latest, ghc: "9.4.7" } - - { os: ubuntu-latest, ghc: "9.6.3" } - - { os: ubuntu-latest, ghc: "9.8.1" } - # - { os: windows-latest, ghc: "8.0.2" } # OOM on tests - # - { os: windows-latest, ghc: "8.2.2" } # OOM on tests - # - { os: windows-latest, ghc: "9.0.1" } # OOM on tests - - { os: windows-latest, ghc: "9.2.7" } - - { os: windows-latest, ghc: "9.4.7" } - - { os: windows-latest, ghc: "9.6.3" } - - { os: windows-latest, ghc: "9.8.1" } - - { os: macOS-latest, ghc: "8.0.2" } - - { os: macOS-latest, ghc: "8.2.2" } - - { os: macOS-latest, ghc: "9.0.2" } + - { os: ubuntu-latest, ghc: "9.2.8" } + - { os: ubuntu-latest, ghc: "9.4.8" } + - { os: ubuntu-latest, ghc: "9.6.5" } + - { os: ubuntu-latest, ghc: "9.8.2" } + - { os: ubuntu-latest, ghc: "9.10.1" } + # - { os: windows-latest, ghc: "8.0.2" } # Linker errors + # - { os: windows-latest, ghc: "8.2.2" } # Linker errors + - { os: windows-latest, ghc: "8.4.4" } + - { os: windows-latest, ghc: "8.6.5" } + - { os: windows-latest, ghc: "8.8.4" } + - { os: windows-latest, ghc: "8.10.7" } + - { os: windows-latest, ghc: "9.0.2" } + - { os: windows-latest, ghc: "9.2.8" } + - { os: windows-latest, ghc: "9.4.8" } + - { os: windows-latest, ghc: "9.6.5" } + - { os: windows-latest, ghc: "9.8.2" } + - { os: windows-latest, ghc: "9.10.1" } + - { os: macOS-13, ghc: "8.0.2" } + - { os: macOS-13, ghc: "8.2.2" } + - { os: macOS-13, ghc: "8.4.4" } + - { os: macOS-13, ghc: "8.6.5" } + - { os: macOS-13, ghc: "8.8.4" } + - { os: macOS-13, ghc: "8.10.7" } + - { os: macOS-13, ghc: "9.0.2" } - { os: macOS-latest, ghc: "9.2.8" } - - { os: macOS-latest, ghc: "9.4.7" } - - { os: macOS-latest, ghc: "9.6.3" } - - { os: macOS-latest, ghc: "9.8.1" } + - { os: macOS-latest, ghc: "9.4.8" } + - { os: macOS-latest, ghc: "9.6.5" } + - { os: macOS-latest, ghc: "9.8.2" } + - { os: macOS-latest, ghc: "9.10.1" } env: cache-version: v3 # bump up this version to invalidate currently stored cache @@ -187,25 +203,24 @@ jobs: run: | set -ex cabal test all --project-file cabal-ci.project - - name: Check Cabal Files - run: | - set -ex - cd massiv - cabal -vnormal check - cd .. + # - name: Check Cabal Files + # run: | + # set -ex + # cd massiv + # cabal -vnormal check + # cd .. massiv-bench: - if: github.event.pull_request.head.repo.full_name != github.repository name: Benchmarks runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] - resolver: [lts-18] + resolver: [lts-22] include: - - resolver: lts-18 - ghc: 8.10.7 + - resolver: lts-22 + ghc: 9.6.5 env: STACK_ARGS: '--resolver ${{ matrix.resolver }} --system-ghc' @@ -213,14 +228,6 @@ jobs: steps: - uses: actions/checkout@v3 - # Workaround the issue on GA Ubuntu images: - # https://github.com/actions/runner-images/issues/7061 - - name: Fixup ghcup - if: matrix.os == 'ubuntu-latest' - run: | - rm -f /usr/local/.ghcup/cache/ghcup-0.0.7.yaml* - sudo chown -R $USER /usr/local/.ghcup - - uses: haskell-actions/setup@v2 id: setup-haskell-cabal name: Setup Haskell @@ -253,7 +260,6 @@ jobs: massiv-examples: - if: github.event.pull_request.head.repo.full_name != github.repository name: Examples runs-on: ${{ matrix.os }} @@ -261,21 +267,13 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - ghc: [9.2.7] + ghc: [9.6.5] env: STACK_ARGS: '--system-ghc' steps: - uses: actions/checkout@v3 - # Workaround the issue on GA Ubuntu images: - # https://github.com/actions/runner-images/issues/7061 - - name: Fixup ghcup - if: matrix.os == 'ubuntu-latest' - run: | - rm -f /usr/local/.ghcup/cache/ghcup-0.0.7.yaml* - sudo chown -R $USER /usr/local/.ghcup - - uses: haskell-actions/setup@v2 id: setup-haskell-cabal name: Setup Haskell diff --git a/massiv-bench/stack-ghc-8.10.yaml b/massiv-bench/stack-ghc-8.10.yaml index d2c23b1c..37c66374 100644 --- a/massiv-bench/stack-ghc-8.10.yaml +++ b/massiv-bench/stack-ghc-8.10.yaml @@ -1,8 +1,6 @@ work-dir: ".stack-work-bench" -resolver: lts-18.28 +resolver: lts-12.27 packages: - '.' extra-deps: - '../massiv/' -- scheduler-2.0.0@sha256:3f053e3ff024fdcdd0983fb901313ef979921bc27e12dec97cd330878ddf78b1,2525 -- vector-stream-0.1.0.0@sha256:09b0f8dc4e51936b9d6b04791f0aa03f7c9759b5fb7140eac8a9461cda1e55a3,1404 diff --git a/massiv-test/CHANGELOG.md b/massiv-test/CHANGELOG.md index 5bf2b4df..1e4086a2 100644 --- a/massiv-test/CHANGELOG.md +++ b/massiv-test/CHANGELOG.md @@ -1,3 +1,9 @@ +# 1.1.0 + +* Rename `assertException` to `assertDeepException` and `assertExceptionIO` to + `assertDeepExceptionIO` in order to match functions that were released in + `QuickCheck-2.15` + # 1.0.0 * Support for massiv-1.0.0.0 diff --git a/massiv-test/src/Test/Massiv/Core/Index.hs b/massiv-test/src/Test/Massiv/Core/Index.hs index 1eb2aae8..2c20685a 100644 --- a/massiv-test/src/Test/Massiv/Core/Index.hs +++ b/massiv-test/src/Test/Massiv/Core/Index.hs @@ -275,17 +275,17 @@ prop_PullOutInsert (DimIx dim) ix = prop_getDimException :: (Typeable ix, Index ix) => Dim -> ix -> Property prop_getDimException d ix = (d <= 0 || d > dimensions (Just ix)) - ==> assertExceptionIO (== IndexDimensionException ix d) (getDimM ix d) + ==> assertDeepExceptionIO (== IndexDimensionException ix d) (getDimM ix d) prop_setDimException :: (Typeable ix, Index ix) => Dim -> ix -> Int -> Property prop_setDimException d ix i = (d <= 0 || d > dimensions (Just ix)) - ==> assertExceptionIO (== IndexDimensionException ix d) (setDimM ix d i) + ==> assertDeepExceptionIO (== IndexDimensionException ix d) (setDimM ix d i) prop_PullOutDimException :: (Typeable ix, Index ix) => Dim -> ix -> Property prop_PullOutDimException d ix = (d <= 0 || d > dimensions (Just ix)) - ==> assertExceptionIO (== IndexDimensionException ix d) (pullOutDimM ix d) + ==> assertDeepExceptionIO (== IndexDimensionException ix d) (pullOutDimM ix d) prop_InsertDimException :: forall ix @@ -295,7 +295,7 @@ prop_InsertDimException -> Int -> Property prop_InsertDimException d ix i = - (d <= 0 || d > dimensions resIO) ==> assertExceptionIO (== IndexDimensionException ix d) resIO + (d <= 0 || d > dimensions resIO) ==> assertDeepExceptionIO (== IndexDimensionException ix d) resIO where resIO = insertDimM ix d i :: IO ix @@ -479,7 +479,7 @@ ixSpec = do describe "NFData" $ do it "rnf" $ property $ \(ix :: ix) -> rnf ix `shouldBe` () it "throws exception" $ property $ \(DimIx d :: DimIx ix) (ix :: ix) -> - assertException (== ExpectedException) (setDim' ix d (throw ExpectedException)) + assertDeepException (== ExpectedException) (setDim' ix d (throw ExpectedException)) ix2UpSpec :: forall ix @@ -516,7 +516,7 @@ szNumSpec = do prop "negate (throws error on non-zero)" $ \sz -> sz /= zeroSz - ==> assertException + ==> assertDeepException (\(ErrorCallWithLocation err loc) -> err `deepseq` loc `deepseq` True) (negate sz :: Sz ix) diff --git a/massiv-test/src/Test/Massiv/Utils.hs b/massiv-test/src/Test/Massiv/Utils.hs index 669c7422..f5791b45 100644 --- a/massiv-test/src/Test/Massiv/Utils.hs +++ b/massiv-test/src/Test/Massiv/Utils.hs @@ -7,8 +7,8 @@ module Test.Massiv.Utils ( showsType, showsArrayType, - assertException, - assertExceptionIO, + assertDeepException, + assertDeepExceptionIO, assertSomeException, assertSomeExceptionIO, toStringException, @@ -61,26 +61,38 @@ showsArrayType :: forall r ix e. (Typeable r, Typeable ix, Typeable e) => ShowS showsArrayType = ("Array " ++) . showsType @r . (" (" ++) . showsType @ix . (") " ++) . showsType @e -assertException +assertSomeException :: NFData a => a -> Property +assertSomeException = assertSomeExceptionIO . pure + +assertSomeExceptionIO :: NFData a => IO a -> Property +assertSomeExceptionIO action = + monadicIO $ + run $ + catchAny + ( do + res <- action + res `deepseq` return (counterexample "Did not receive an exception" False) + ) + (\exc -> displayException exc `deepseq` return (property True)) + +#if !MIN_VERSION_QuickCheck(2,15,0) +assertDeepException :: (Testable b, NFData a, Exception exc) => (exc -> b) -- ^ Return True if that is the exception that was expected -> a -- ^ Value that should throw an exception, when fully evaluated -> Property -assertException isExc = assertExceptionIO isExc . pure +assertDeepException isExc = assertDeepExceptionIO isExc . pure -assertSomeException :: NFData a => a -> Property -assertSomeException = assertSomeExceptionIO . pure - -assertExceptionIO +assertDeepExceptionIO :: (Testable b, NFData a, Exception exc) => (exc -> b) -- ^ Return True if that is the exception that was expected -> IO a -- ^ IO Action that should throw an exception -> Property -assertExceptionIO isExc action = +assertDeepExceptionIO isExc action = monadicIO $ run $ catch @@ -90,16 +102,7 @@ assertExceptionIO isExc action = ) (\exc -> displayException exc `deepseq` return (property (isExc exc))) -assertSomeExceptionIO :: NFData a => IO a -> Property -assertSomeExceptionIO action = - monadicIO $ - run $ - catchAny - ( do - res <- action - res `deepseq` return (counterexample "Did not receive an exception" False) - ) - (\exc -> displayException exc `deepseq` return (property True)) +#endif toStringException :: Either SomeException a -> Either String a toStringException = either (Left . displayException) Right @@ -130,7 +133,7 @@ expectProp = monadicIO . run -- | Convert a Testable to a quickcheck Property. Works well with hspec expectations as well -- -- @since 1.7.0 -propIO :: (Testable a) => IO a -> Property +propIO :: Testable a => IO a -> Property propIO action = monadicIO $ run action epsilonExpect diff --git a/massiv-test/tests/Test/Massiv/Array/MutableSpec.hs b/massiv-test/tests/Test/Massiv/Array/MutableSpec.hs index 48215a15..a4378cfc 100644 --- a/massiv-test/tests/Test/Massiv/Array/MutableSpec.hs +++ b/massiv-test/tests/Test/Massiv/Array/MutableSpec.hs @@ -126,7 +126,7 @@ prop_Write arr ix e = marr <- thaw arr A.read marr ix >>= \case Nothing -> - let withExcept = assertExceptionIO (== IndexOutOfBoundsException (size arr) ix) + let withExcept = assertDeepExceptionIO (== IndexOutOfBoundsException (size arr) ix) in pure ( withExcept (writeM marr ix e) .&&. (write marr ix e `shouldReturn` False) @@ -160,7 +160,7 @@ prop_Modify arr f ix = marr <- thaw arr modify marr (pure . apply f) ix >>= \case Nothing -> - let withExcept = assertExceptionIO (== IndexOutOfBoundsException (size arr) ix) + let withExcept = assertDeepExceptionIO (== IndexOutOfBoundsException (size arr) ix) in pure ( withExcept (void $ indexM arr ix) .&&. withExcept (void $ readM marr ix) @@ -199,7 +199,7 @@ prop_Swap arr ix1 ix2 = swap marr ix1 ix2 >>= \case Nothing -> let withExcept = - assertExceptionIO + assertDeepExceptionIO ( \case IndexOutOfBoundsException _ _ -> True _ -> False diff --git a/massiv-test/tests/Test/Massiv/Array/Ops/ConstructSpec.hs b/massiv-test/tests/Test/Massiv/Array/Ops/ConstructSpec.hs index 01b80953..cde16093 100644 --- a/massiv-test/tests/Test/Massiv/Array/Ops/ConstructSpec.hs +++ b/massiv-test/tests/Test/Massiv/Array/Ops/ConstructSpec.hs @@ -23,7 +23,7 @@ prop_rangeStepEqEnumFromStepN from (NonZero step) sz = prop_rangeStepExc :: Int -> Int -> Property prop_rangeStepExc from to = - assertException + assertDeepException selectErrorCall (computeAs U (rangeStep' Seq from 0 to)) diff --git a/massiv-test/tests/Test/Massiv/Array/Ops/TransformSpec.hs b/massiv-test/tests/Test/Massiv/Array/Ops/TransformSpec.hs index 07a7c1df..44493af9 100644 --- a/massiv-test/tests/Test/Massiv/Array/Ops/TransformSpec.hs +++ b/massiv-test/tests/Test/Massiv/Array/Ops/TransformSpec.hs @@ -106,7 +106,7 @@ prop_ConcatMconcat arrs = prop_ExtractSizeMismatch :: (Size r, Load r ix e, NFData (Array r Int e)) => ArrTiny r ix e -> Positive Int -> Property prop_ExtractSizeMismatch (ArrTiny arr) (Positive n) = - assertExceptionIO (SizeElementsMismatchException sz sz' ==) $ resizeM sz' arr + assertDeepExceptionIO (SizeElementsMismatchException sz sz' ==) $ resizeM sz' arr where sz = size arr sz' = Sz (totalElem sz + n) diff --git a/massiv-test/tests/Test/Massiv/Array/StencilSpec.hs b/massiv-test/tests/Test/Massiv/Array/StencilSpec.hs index 2cc0f4c0..6339af1c 100644 --- a/massiv-test/tests/Test/Massiv/Array/StencilSpec.hs +++ b/massiv-test/tests/Test/Massiv/Array/StencilSpec.hs @@ -68,7 +68,7 @@ prop_DangerousStencil -> SzIx ix -> Property prop_DangerousStencil _ (DimIx r) (SzIx sz center) = - assertException selectErrorCall arr + assertDeepException selectErrorCall arr where stencil = makeStencil sz center $ \get -> get ix' :: Int arr = computeAs P (mapStencil Edge stencil (makeArray Seq sz (const 0) :: Array P ix Int)) diff --git a/massiv-test/tests/Test/Massiv/Core/IndexSpec.hs b/massiv-test/tests/Test/Massiv/Core/IndexSpec.hs index a1cee9c3..500636d7 100644 --- a/massiv-test/tests/Test/Massiv/Core/IndexSpec.hs +++ b/massiv-test/tests/Test/Massiv/Core/IndexSpec.hs @@ -167,6 +167,6 @@ spec = do specSz @Ix5 describe "NFData Border" $ do it "Fill exception" $ - assertException (ExpectedException ==) (Fill (throw ExpectedException :: Int)) + assertDeepException (ExpectedException ==) (Fill (throw ExpectedException :: Int)) it "rnf" $ property $ \(b :: Border Int) -> rnf b `shouldBe` () specLaws $ eqLaws (Proxy @(Border Int)) diff --git a/massiv-test/tests/Test/Massiv/Core/SchedulerSpec.hs b/massiv-test/tests/Test/Massiv/Core/SchedulerSpec.hs index dca1fdae..c21cfca5 100644 --- a/massiv-test/tests/Test/Massiv/Core/SchedulerSpec.hs +++ b/massiv-test/tests/Test/Massiv/Core/SchedulerSpec.hs @@ -11,7 +11,7 @@ import Prelude as P -- | Ensure proper exception handling. prop_CatchDivideByZero :: ArrIx D Ix2 Int -> [Int] -> Property prop_CatchDivideByZero (ArrIx arr ix) caps = - assertException + assertDeepException (== DivideByZero) ( A.sum $ A.imap @@ -26,7 +26,7 @@ prop_CatchDivideByZero (ArrIx arr ix) caps = -- | Ensure proper exception handling in nested parallel computation prop_CatchNested :: ArrIx D Ix1 (ArrIx D Ix1 Int) -> [Int] -> Property prop_CatchNested (ArrIx arr ix) caps = - assertException + assertDeepException (== DivideByZero) ( computeAs U $ A.map A.sum $ diff --git a/massiv/massiv.cabal b/massiv/massiv.cabal index 9fdd1b20..24ab4375 100644 --- a/massiv/massiv.cabal +++ b/massiv/massiv.cabal @@ -20,9 +20,10 @@ tested-with: GHC == 8.0.2 , GHC == 8.8.4 , GHC == 8.10.7 , GHC == 9.0.2 - , GHC == 9.2.7 - , GHC == 9.4.4 - , GHC == 9.6.1 + , GHC == 9.2.8 + , GHC == 9.4.8 + , GHC == 9.6.5 + , GHC == 9.8.2 flag unsafe-checks description: Enable all the bounds checks for unsafe functions at the cost of diff --git a/stack.ghc-9.0.2.yaml b/stack.ghc-9.0.2.yaml index 3dc258af..7f6ed05c 100644 --- a/stack.ghc-9.0.2.yaml +++ b/stack.ghc-9.0.2.yaml @@ -1,5 +1,4 @@ work-dir: ".stack-work-root" -system-ghc: true resolver: lts-19.33 packages: - 'massiv/' diff --git a/stack.ghc-9.2.8.yaml b/stack.ghc-9.2.8.yaml index 0688fb79..e7fab0af 100644 --- a/stack.ghc-9.2.8.yaml +++ b/stack.ghc-9.2.8.yaml @@ -1,5 +1,5 @@ work-dir: ".stack-work-root" -resolver: lts-20.10 +resolver: lts-20.26 packages: - 'massiv/' - 'massiv-test/' diff --git a/stack.ghc-9.4.8.yaml b/stack.ghc-9.4.8.yaml new file mode 100644 index 00000000..70d76cf3 --- /dev/null +++ b/stack.ghc-9.4.8.yaml @@ -0,0 +1,11 @@ +work-dir: ".stack-work-root" +resolver: lts-21.25 +system-ghc: true +packages: +- 'massiv/' +- 'massiv-test/' +flags: {} +extra-deps: [] + +ghc-options: + '$everything': -haddock diff --git a/stack.ghc-9.4.7.yaml b/stack.ghc-9.6.5.yaml similarity index 82% rename from stack.ghc-9.4.7.yaml rename to stack.ghc-9.6.5.yaml index 241fef73..48b8063f 100644 --- a/stack.ghc-9.4.7.yaml +++ b/stack.ghc-9.6.5.yaml @@ -1,5 +1,5 @@ work-dir: ".stack-work-root" -resolver: nightly-2023-02-04 +resolver: lts-22.27 packages: - 'massiv/' - 'massiv-test/' diff --git a/stack.ghc-9.6.3.yaml b/stack.ghc-9.8.2.yaml similarity index 82% rename from stack.ghc-9.6.3.yaml rename to stack.ghc-9.8.2.yaml index 241fef73..a7e83845 100644 --- a/stack.ghc-9.6.3.yaml +++ b/stack.ghc-9.8.2.yaml @@ -1,5 +1,5 @@ work-dir: ".stack-work-root" -resolver: nightly-2023-02-04 +resolver: nightly-2024-06-28 packages: - 'massiv/' - 'massiv-test/'