From f0d8ee3cb8325fb9d4951e883b47ae0431429e2a Mon Sep 17 00:00:00 2001 From: Alexey Kuleshevich Date: Sat, 14 Dec 2024 08:18:44 -0700 Subject: [PATCH] Improve CI configuration * Remove doctests as a separate test suite section * Add `cabal.project` * Organaze stack yaml files * Take care of compiler warnings --- .github/workflows/haskell.yml | 222 ++++++++++++------ Color/Color.cabal | 22 +- .../src/Graphics/Color/Adaptation/Internal.hs | 1 + .../src/Graphics/Color/Adaptation/VonKries.hs | 6 + Color/src/Graphics/Color/Algebra.hs | 4 +- Color/src/Graphics/Color/Algebra/Elevator.hs | 4 +- Color/src/Graphics/Color/Model/Internal.hs | 11 +- Color/src/Graphics/Color/Space/DIN99.hs | 1 - Color/src/Graphics/Color/Space/Internal.hs | 3 +- .../Color/Space/RGB/Alternative/YCbCr.hs | 2 +- Color/src/Graphics/Color/Space/RGB/Luma.hs | 1 - Color/src/Graphics/Color/Standard/RAL.hs | 6 + Color/src/Graphics/Pixel/ColorSpace.hs | 1 + Color/tests/doctests.hs | 16 -- cabal.project | 9 + stack-coveralls.yaml | 6 - stack.yaml | 2 +- stack/ghc-8.0.2.yaml.lock | 110 +++++++++ stack/ghc-8.10.7.yaml | 5 + stack/ghc-8.2.2.yaml.lock | 110 +++++++++ stack/ghc-8.4.4.yaml | 16 ++ stack/ghc-8.4.4.yaml.lock | 89 +++++++ stack-extra-deps.yaml => stack/ghc-8.6.5.yaml | 3 +- stack/ghc-8.8.4.yaml | 16 ++ stack/ghc-8.8.4.yaml.lock | 89 +++++++ stack/ghc-9.0.2.yaml | 5 + stack/ghc-9.2.8.yaml | 5 + stack/ghc-9.4.8.yaml | 5 + stack/ghc-9.6.6.yaml | 5 + stack/ghc-9.8.4.yaml | 5 + 30 files changed, 649 insertions(+), 131 deletions(-) delete mode 100644 Color/tests/doctests.hs create mode 100644 cabal.project delete mode 100644 stack-coveralls.yaml create mode 100644 stack/ghc-8.0.2.yaml.lock create mode 100644 stack/ghc-8.10.7.yaml create mode 100644 stack/ghc-8.2.2.yaml.lock create mode 100644 stack/ghc-8.4.4.yaml create mode 100644 stack/ghc-8.4.4.yaml.lock rename stack-extra-deps.yaml => stack/ghc-8.6.5.yaml (97%) create mode 100644 stack/ghc-8.8.4.yaml create mode 100644 stack/ghc-8.8.4.yaml.lock create mode 100644 stack/ghc-9.0.2.yaml create mode 100644 stack/ghc-9.2.8.yaml create mode 100644 stack/ghc-9.4.8.yaml create mode 100644 stack/ghc-9.6.6.yaml create mode 100644 stack/ghc-9.8.4.yaml diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index 914fff4..f33d329 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -1,119 +1,189 @@ -name: Color-CI +name: CI on: push: - branches: [ '*' ] + branches: [ "master", "release/**" ] pull_request: - branches: [ master ] + branches: [ "**" ] + schedule: + - cron: "0 5 * * 5" defaults: { run: { shell: bash } } +# 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: ${{ + format('{0}-{1}{2}', + github.workflow, + github.event.pull_request.number || github.ref, + github.event_name == 'schedule' && '-scheduled' || '')}} + cancel-in-progress: true + jobs: - build: - name: CI + test-with-stack: + name: Stack runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest] - # resolver: [nightly -- disabled for now, some issue with installing ghc - resolver: [lts-20, lts-19, lts-18, lts-16, lts-14, lts-12] include: - - resolver: lts-12 - ghc: 8.4.4 - stack-yaml: stack-extra-deps.yaml - - resolver: lts-14 - stack-yaml: stack-coveralls.yaml - - resolver: lts-16 - ghc: 8.8.4 - - resolver: lts-18 - - # Latest stable for MacOS: ghc-8.8.4 - - resolver: lts-16 - os: macos-latest - - resolver: lts-19 - os: macos-latest - - resolver: lts-20 - os: macos-latest - # Latest stable for Windows: ghc-8.6.4 - - resolver: lts-14 - os: windows-latest - - resolver: lts-19 - os: windows-latest - - resolver: lts-20 - os: windows-latest + - { os: Ubuntu-latest, resolver: lts-12, ghc: "8.4.4" } + - { os: Ubuntu-latest, resolver: lts-14, ghc: "8.6.5" } + - { os: Ubuntu-latest, resolver: lts-16, ghc: "8.8.4" } + - { os: Ubuntu-latest, resolver: lts-18, ghc: "8.10.7" } + - { os: Ubuntu-latest, resolver: lts-19, ghc: "9.0.2" } + - { os: Ubuntu-latest, resolver: lts-20, ghc: "9.2.8" } + - { os: Ubuntu-latest, resolver: lts-21, ghc: "9.4.8" } + - { os: Ubuntu-latest, resolver: lts-22, ghc: "9.6.6" } + - { os: Ubuntu-latest, resolver: lts-23, ghc: "9.8.4" } + - { os: Ubuntu-latest, resolver: nightly } + - { os: Windows-latest, resolver: lts-12, ghc: "8.4.4" } + - { os: Windows-latest, resolver: lts-14, ghc: "8.6.5" } + - { os: Windows-latest, resolver: lts-16, ghc: "8.8.4" } + - { os: Windows-latest, resolver: lts-18, ghc: "8.10.7" } + - { os: Windows-latest, resolver: lts-19, ghc: "9.0.2" } + - { os: Windows-latest, resolver: lts-20, ghc: "9.2.8" } + - { os: Windows-latest, resolver: lts-21, ghc: "9.4.8" } + - { os: Windows-latest, resolver: lts-22, ghc: "9.6.6" } + - { os: Windows-latest, resolver: lts-23, ghc: "9.8.4" } + - { os: Windows-latest, resolver: nightly } + - { os: MacOS-13, resolver: lts-12, ghc: "8.4.4" } + - { os: MacOS-13, resolver: lts-14, ghc: "8.6.5" } + - { os: MacOS-13, resolver: lts-16, ghc: "8.8.4" } + - { os: MacOS-13, resolver: lts-18, ghc: "8.10.7" } + - { os: MacOS-13, resolver: lts-19, ghc: "9.0.2" } + - { os: MacOS-latest, resolver: lts-20, ghc: "9.2.8" } + - { os: MacOS-latest, resolver: lts-21, ghc: "9.4.8" } + - { os: MacOS-latest, resolver: lts-22, ghc: "9.6.6" } + - { os: MacOS-latest, resolver: lts-23, ghc: "9.8.4" } + - { os: MacOS-latest, resolver: nightly } env: - STACK_YAML: stack.yaml - STACK_ARGS: '--resolver ${{ matrix.resolver }}' - cache-version: v5 # bump up this version to invalidate currently stored cache + STACK_YAML: ${{ matrix.stack-yaml || matrix.ghc != '' && format('stack/ghc-{0}.yaml', matrix.ghc) || 'stack.yaml' }} + STACK_ARGS: '--resolver ${{ matrix.resolver }} --system-ghc' + cache-version: v0 # bump up this version to invalidate currently stored cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 + + - uses: haskell-actions/setup@v2 + id: setup-haskell-cabal + name: Setup Haskell + with: + ghc-version: ${{ matrix.ghc }} + enable-stack: true + stack-version: 'latest' - name: Cache id: cache - uses: actions/cache@v2 - if: matrix.os != 'macos-latest' + uses: actions/cache@v4 with: path: | - ~/.stack + ${{ steps.setup-haskell-cabal.outputs.stack-root }} .stack-work - Color/.stack-work - key: ${{ runner.os }}-${{ matrix.resolver }}-${{ env.cache-version }} - restore-keys: | - ${{ runner.os }}-${{ matrix.resolver }}-${{ env.cache-version }} - - name: Cache - id: cache-macos - uses: actions/cache@v2 - if: matrix.os == 'macos-latest' - with: - path: | - ~/.stack key: ${{ runner.os }}-${{ matrix.resolver }}-${{ env.cache-version }} restore-keys: | ${{ runner.os }}-${{ matrix.resolver }}-${{ env.cache-version }} - - name: Workaround setup-exe-cache failure on macos - if: steps.cache-macos.outputs.cache-hit == 'true' && matrix.os == 'macos-latest' - run: | - rm -r ~/.stack/setup-exe-cache - name: Windows Cache id: cache-windows - uses: actions/cache@v2 + uses: actions/cache@v4 if: matrix.os == 'windows-latest' with: path: | - C:\\Users\\RUNNER~1\\AppData\\Roaming\\stack C:\\Users\\RUNNER~1\\AppData\\Local\\Programs\\stack key: ${{ runner.os }}-${{ matrix.resolver }}-programs-${{ env.cache-version }} restore-keys: | ${{ runner.os }}-${{ matrix.resolver }}-programs-${{ env.cache-version }} - - - name: Ubuntu install GHC - if: matrix.ghc != '' && matrix.os == 'ubuntu-latest' + - name: Reset modtime run: | - sudo add-apt-repository ppa:hvr/ghc -y - sudo apt-get update - sudo apt-get install ghc-${{ matrix.ghc }} - - name: Install Stack and local GHC + set -ex + curl -sSL https://raw.githubusercontent.com/lehins/utils/master/haskell/git-modtime/git-modtime.hs -o git-modtime.hs + runhaskell -- git-modtime.hs -f .stack-work-root/tree-contents.txt + - name: Build run: | set -ex - curl -sSL https://get.haskellstack.org/ | sh -s - -f - curl -sSL https://raw.githubusercontent.com/lehins/utils/786c3fe7e9e1345d7b403019f52e344627224edf/haskell/git-modtime/git-modtime.hs -o git-modtime.hs - [ -n "${{ matrix.ghc }}" ] && [ "${{ matrix.os }}" == "ubuntu-latest" ] && STACK_ARGS="$STACK_ARGS --system-ghc" - [ -n "${{ matrix.stack-yaml }}" ] && STACK_YAML=${{ matrix.stack-yaml }} - stack $STACK_ARGS runghc git-modtime.hs - - name: Tests + stack $STACK_ARGS test --no-run-tests --bench --no-run-benchmarks --haddock --no-haddock-deps + - name: Test env: - COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} run: | set -ex - [ -n "${{ matrix.ghc }}" ] && [ "${{ matrix.os }}" == "ubuntu-latest" ] && STACK_ARGS="$STACK_ARGS --system-ghc" - [ -n "${{ matrix.stack-yaml }}" ] && STACK_YAML=${{ matrix.stack-yaml }} - if [ "${{ matrix.os }}.${{ matrix.resolver }}" == "ubuntu-latest.lts-14" ] && [ -n "${COVERALLS_TOKEN}" ]; then - stack $STACK_ARGS test Color:tests --coverage --haddock --no-haddock-deps + if [ "${{ matrix.os }}.${{ matrix.resolver }}" == "ubuntu-latest.lts-21" ] && [ -n "${COVERALLS_REPO_TOKEN}" ]; then + stack $STACK_ARGS test --coverage stack $STACK_ARGS hpc report --all - curl -L https://github.com/rubik/stack-hpc-coveralls/releases/download/v0.0.6.1/shc-linux-x64-8.8.4.tar.bz2 | tar xj shc - ./shc --repo-token="$COVERALLS_TOKEN" --partial-coverage --fetch-coverage combined custom + curl -L https://github.com/rubik/stack-hpc-coveralls/releases/download/v0.0.7.0/shc-Linux-X64.tar.bz2 | tar xj shc + ./shc --repo-token="$COVERALLS_REPO_TOKEN" --partial-coverage --fetch-coverage combined custom else - stack $STACK_ARGS test Color:tests Color:doctests --bench --no-run-benchmarks --haddock --no-haddock-deps + stack $STACK_ARGS test fi + + test-with-cabal: + name: Cabal + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - { cabal: "3.12", os: ubuntu-latest, ghc: "8.4.4" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "8.6.5" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "8.8.4" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "8.10.7" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "9.0.2" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "9.2.8" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "9.4.8" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "9.6.6" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "9.8.2" } + - { cabal: "3.12", os: ubuntu-latest, ghc: "9.10.1" } + - { cabal: "3.12", os: windows-latest, ghc: "9.0.2" } + - { cabal: "3.12", os: windows-latest, ghc: "9.2.8" } + - { cabal: "3.12", os: windows-latest, ghc: "9.4.8" } + - { cabal: "3.12", os: windows-latest, ghc: "9.6.6" } + - { cabal: "3.12", os: windows-latest, ghc: "9.8.2" } + - { cabal: "3.12", os: windows-latest, ghc: "9.10.1" } + - { cabal: "3.12", os: macOS-13, ghc: "9.0.2" } + - { cabal: "3.12", os: macOS-latest, ghc: "9.2.8" } + - { cabal: "3.12", os: macOS-latest, ghc: "9.4.8" } + - { cabal: "3.12", os: macOS-latest, ghc: "9.6.6" } + - { cabal: "3.12", os: macOS-latest, ghc: "9.8.2" } + - { cabal: "3.12", os: macOS-latest, ghc: "9.10.1" } + + env: + cache-version: v0 # bump up this version to invalidate currently stored cache + steps: + - uses: actions/checkout@v4 + - uses: haskell-actions/setup@v2 + id: setup-haskell-cabal + name: Setup Haskell + with: + ghc-version: ${{ matrix.ghc }} + cabal-version: ${{ matrix.cabal }} + + - name: Cache Cabal Store + id: cache + uses: actions/cache@v4 + with: + path: | + ${{ steps.setup-haskell-cabal.outputs.cabal-store }} + dist-newstyle + key: cabal-${{ runner.os }}-${{ matrix.ghc }}-${{ env.cache-version }} + restore-keys: | + cabal-${{ runner.os }}-${{ matrix.ghc }}-${{ env.cache-version }} + - name: Build + run: | + set -ex + cabal configure --haddock-all --enable-tests --enable-benchmarks + cabal build all --write-ghc-environment-files=always + - name: Test + run: | + set -ex + cabal test all + - name: Doctest + run: | + set -ex + cabal install doctest --ignore-project --overwrite-policy=always + cabal repl Color --build-depends=QuickCheck --build-depends=JuicyPixels --build-depends=QuickCheck --with-compiler=doctest --repl-options='-w -Wdefault' + - name: Check Cabal Files + run: | + set -ex + cd Color + cabal -vnormal check diff --git a/Color/Color.cabal b/Color/Color.cabal index fb12d4f..d9d7f14 100644 --- a/Color/Color.cabal +++ b/Color/Color.cabal @@ -97,7 +97,8 @@ library ghc-options: -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns - -Wredundant-constraints + if impl(ghc < 9.0) || impl(ghc >= 9.6) + ghc-options: -Wredundant-constraints test-suite tests type: exitcode-stdio-1.0 @@ -160,25 +161,6 @@ test-suite tests -threaded -freduction-depth=0 -test-suite doctests - type: exitcode-stdio-1.0 - hs-source-dirs: tests - main-is: doctests.hs - build-depends: base - if impl(ghc >= 8.2) && impl(ghc < 8.10) - build-depends: doctest >=0.16 - , QuickCheck - , Color - , JuicyPixels - default-language: Haskell2010 - ghc-options: -Wall - -Wincomplete-record-updates - -Wincomplete-uni-patterns - -Wredundant-constraints - -fno-warn-orphans - -threaded - - benchmark conversion type: exitcode-stdio-1.0 hs-source-dirs: bench diff --git a/Color/src/Graphics/Color/Adaptation/Internal.hs b/Color/src/Graphics/Color/Adaptation/Internal.hs index 7661c21..ccdb3d5 100644 --- a/Color/src/Graphics/Color/Adaptation/Internal.hs +++ b/Color/src/Graphics/Color/Adaptation/Internal.hs @@ -4,6 +4,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} -- | -- Module : Graphics.Color.Adaptation.Internal -- Copyright : (c) Alexey Kuleshevich 2019-2020 diff --git a/Color/src/Graphics/Color/Adaptation/VonKries.hs b/Color/src/Graphics/Color/Adaptation/VonKries.hs index 5b8956b..49c88a7 100644 --- a/Color/src/Graphics/Color/Adaptation/VonKries.hs +++ b/Color/src/Graphics/Color/Adaptation/VonKries.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} @@ -5,7 +6,12 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} +#if __GLASGOW_HASKELL__ >= 906 +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} +#else {-# LANGUAGE TypeInType #-} +#endif -- | -- Module : Graphics.Color.Adaptation.VonKries -- Copyright : (c) Alexey Kuleshevich 2018-2020 diff --git a/Color/src/Graphics/Color/Algebra.hs b/Color/src/Graphics/Color/Algebra.hs index 5518695..5bc05cd 100644 --- a/Color/src/Graphics/Color/Algebra.hs +++ b/Color/src/Graphics/Color/Algebra.hs @@ -33,9 +33,11 @@ module Graphics.Color.Algebra import Data.Typeable import Foreign.Ptr -import Control.Applicative import Foreign.Storable import Graphics.Color.Algebra.Elevator +#if MIN_VERSION_base(4,10,0) && !MIN_VERSION_base(4,18,0) +import Control.Applicative (liftA2) +#endif -------- diff --git a/Color/src/Graphics/Color/Algebra/Elevator.hs b/Color/src/Graphics/Color/Algebra/Elevator.hs index 8f9aff3..79e46ee 100644 --- a/Color/src/Graphics/Color/Algebra/Elevator.hs +++ b/Color/src/Graphics/Color/Algebra/Elevator.hs @@ -135,7 +135,9 @@ double2Word64 d' -- | Differs from `fromIntegral` due to: [GHC #17782](https://gitlab.haskell.org/ghc/ghc/issues/17782) -- --- >>> fromIntegral (maxBound :: Word64) :: Double +-- This is the value for ghc < 9.2 +-- +-- > fromIntegral (maxBound :: Word64) :: Double -- 1.844674407370955e19 -- maxWord64 :: Double diff --git a/Color/src/Graphics/Color/Model/Internal.hs b/Color/src/Graphics/Color/Model/Internal.hs index 4546149..9031c4f 100644 --- a/Color/src/Graphics/Color/Model/Internal.hs +++ b/Color/src/Graphics/Color/Model/Internal.hs @@ -4,6 +4,7 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} -- | -- Module : Graphics.Color.Model.Internal @@ -43,7 +44,7 @@ module Graphics.Color.Model.Internal , VU.Vector(V_Color) ) where -import Control.Applicative +import qualified Control.Applicative as A import Control.DeepSeq (NFData(rnf), deepseq) import Data.Default.Class (Default(..)) import Data.Foldable @@ -94,11 +95,11 @@ instance ColorModel cs e => Default (Color cs e) where instance ColorModel cs e => Num (Color cs e) where - (+) = liftA2 (+) + (+) = A.liftA2 (+) {-# INLINE (+) #-} - (-) = liftA2 (-) + (-) = A.liftA2 (-) {-# INLINE (-) #-} - (*) = liftA2 (*) + (*) = A.liftA2 (*) {-# INLINE (*) #-} abs = fmap abs {-# INLINE abs #-} @@ -109,7 +110,7 @@ instance ColorModel cs e => Num (Color cs e) where instance (ColorModel cs e, Fractional e) => Fractional (Color cs e) where - (/) = liftA2 (/) + (/) = A.liftA2 (/) {-# INLINE (/) #-} recip = fmap recip {-# INLINE recip #-} diff --git a/Color/src/Graphics/Color/Space/DIN99.hs b/Color/src/Graphics/Color/Space/DIN99.hs index 9a368ab..2c32d4d 100644 --- a/Color/src/Graphics/Color/Space/DIN99.hs +++ b/Color/src/Graphics/Color/Space/DIN99.hs @@ -25,7 +25,6 @@ import GHC.Generics (Generic) import Graphics.Color.Model.Internal import Graphics.Color.Space.Internal import Graphics.Color.Space.CIE1976.LAB -import Graphics.Color.Illuminant.Wikipedia as W data DIN99 (i :: k) diff --git a/Color/src/Graphics/Color/Space/Internal.hs b/Color/src/Graphics/Color/Space/Internal.hs index d311678..48a23ba 100644 --- a/Color/src/Graphics/Color/Space/Internal.hs +++ b/Color/src/Graphics/Color/Space/Internal.hs @@ -11,6 +11,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE ViewPatterns #-} -- | @@ -70,7 +71,7 @@ import Graphics.Color.Model.Internal import qualified Graphics.Color.Model.X as CM import Data.Typeable import Data.Coerce -import GHC.TypeNats +import GHC.TypeLits import Data.Kind class (Illuminant i, ColorModel (BaseModel cs) e, ColorModel cs e) => diff --git a/Color/src/Graphics/Color/Space/RGB/Alternative/YCbCr.hs b/Color/src/Graphics/Color/Space/RGB/Alternative/YCbCr.hs index 4976534..0890518 100644 --- a/Color/src/Graphics/Color/Space/RGB/Alternative/YCbCr.hs +++ b/Color/src/Graphics/Color/Space/RGB/Alternative/YCbCr.hs @@ -59,7 +59,7 @@ deriving instance Foldable (Color (Y'CbCr cs)) deriving instance Traversable (Color (Y'CbCr cs)) deriving instance Storable e => Storable (Color (Y'CbCr cs) e) -instance (Typeable cs, ColorModel (cs 'NonLinear) e, Elevator e) => Show (Color (Y'CbCr cs) e) where +instance (Typeable cs, ColorModel (cs 'NonLinear) e) => Show (Color (Y'CbCr cs) e) where showsPrec _ = showsColorModel -- | Constructor for an RGB color space in an alternative Y'CbCr color model diff --git a/Color/src/Graphics/Color/Space/RGB/Luma.hs b/Color/src/Graphics/Color/Space/RGB/Luma.hs index 93a50bb..ced951e 100644 --- a/Color/src/Graphics/Color/Space/RGB/Luma.hs +++ b/Color/src/Graphics/Color/Space/RGB/Luma.hs @@ -99,7 +99,6 @@ instance (Typeable cs, Elevator e) => ColorModel (Y' cs) e where instance ( Typeable cs - , Illuminant i , ColorSpace (cs 'Linear) i e , ColorSpace (cs 'NonLinear) i e , Luma cs diff --git a/Color/src/Graphics/Color/Standard/RAL.hs b/Color/src/Graphics/Color/Standard/RAL.hs index 2a70b46..d0d6503 100644 --- a/Color/src/Graphics/Color/Standard/RAL.hs +++ b/Color/src/Graphics/Color/Standard/RAL.hs @@ -1,10 +1,16 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NegativeLiterals #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} +#if __GLASGOW_HASKELL__ >= 906 +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} +#else {-# LANGUAGE TypeInType #-} +#endif -- | -- Module : Graphics.Color.Standard.RAL -- Copyright : (c) Alexey Kuleshevich 2019-2020 diff --git a/Color/src/Graphics/Pixel/ColorSpace.hs b/Color/src/Graphics/Pixel/ColorSpace.hs index 9293f2f..868d4ea 100644 --- a/Color/src/Graphics/Pixel/ColorSpace.hs +++ b/Color/src/Graphics/Pixel/ColorSpace.hs @@ -4,6 +4,7 @@ {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE ViewPatterns #-} -- | diff --git a/Color/tests/doctests.hs b/Color/tests/doctests.hs deleted file mode 100644 index c876c04..0000000 --- a/Color/tests/doctests.hs +++ /dev/null @@ -1,16 +0,0 @@ -{-# LANGUAGE CPP #-} -module Main where - -#if __GLASGOW_HASKELL__ >= 802 && __GLASGOW_HASKELL__ < 810 - -import Test.DocTest (doctest) - -main :: IO () -main = doctest ["src"] - -#else - -main :: IO () -main = putStrLn "\nDoctests are not supported for older ghc version\n" - -#endif diff --git a/cabal.project b/cabal.project new file mode 100644 index 0000000..7c2e1df --- /dev/null +++ b/cabal.project @@ -0,0 +1,9 @@ +packages: + Color +tests: True +benchmarks: True +test-show-details: streaming +write-ghc-environment-files: always +program-options + ghc-options: -Werror + diff --git a/stack-coveralls.yaml b/stack-coveralls.yaml deleted file mode 100644 index 90798a6..0000000 --- a/stack-coveralls.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# There is no way to pass `--resolver lts-14.27` to `shc` (stack-hpc-coveralls), so we -# keep around a special stack-yaml file for it. -resolver: lts-14.27 -packages: -- Color -extra-deps: [] diff --git a/stack.yaml b/stack.yaml index 92d2603..832f1d5 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,4 +1,4 @@ -resolver: lts-18.28 +resolver: lts-23.00 packages: - Color extra-deps: [] diff --git a/stack/ghc-8.0.2.yaml.lock b/stack/ghc-8.0.2.yaml.lock new file mode 100644 index 0000000..d657d3e --- /dev/null +++ b/stack/ghc-8.0.2.yaml.lock @@ -0,0 +1,110 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 + pantry-tree: + sha256: e509268878581ec17929cab9ee6cc30ef05f6c203e760f49865547249fbb9d48 + size: 2724 + original: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 +- completed: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 + pantry-tree: + sha256: f79eee2f6a00b2c649f993a7b358827702373cbc931ced55ebdfb59625540403 + size: 2202 + original: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 +- completed: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 + pantry-tree: + sha256: 32f9dc84cb1845c5020bc9cb5c5c56e890d54d16b0cbf9c788825abb45165499 + size: 870 + original: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 +- completed: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 + pantry-tree: + sha256: 1632476e4cdd37f323f81b2df0d06efe542ca3b02ab0097e1cd95d12c0fc2003 + size: 334 + original: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 +- completed: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 + pantry-tree: + sha256: 6a16ac4bafb5a68a0918ac6c815f8b24062959341c7f68b85ef0a7a181e792bc + size: 8050 + original: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 +- completed: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 + pantry-tree: + sha256: 7761094914f253af8eff3e0d14e1e0317a7e260f2d4bd4bd44d5d222fe0ba3d6 + size: 3601 + original: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 +- completed: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 + pantry-tree: + sha256: 8128733a7ef4760bbe5d978f2145fdcb29f4491b17db11e8c05b409441ceecb4 + size: 532 + original: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 +- completed: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 + pantry-tree: + sha256: 2d1c4ccbd0c9047311d1bd24989714df844003c258964ef65d542f6627dc0fed + size: 1080 + original: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 +- completed: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 + pantry-tree: + sha256: 5b6dbda3749d16d5cc2837ca5a766d1544e1bad1ee6ce220b82379d42dd8e853 + size: 2479 + original: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 +- completed: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 + pantry-tree: + sha256: cbbdda422f623b55b4633ead26aa65c820f8f8446ef4e96884f940ef94051053 + size: 3783 + original: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 +- completed: + hackage: scheduler-1.5.0@sha256:8b43f2991bf9a720b12192ba99525f705a44aeae9541a7bd73fbc7e7b56fd8f0,2437 + pantry-tree: + sha256: 18de6354961aab66e7aafb6b7a21edfa2239cd202a61338468ebe0840b826e04 + size: 921 + original: + hackage: scheduler-1.5.0@sha256:8b43f2991bf9a720b12192ba99525f705a44aeae9541a7bd73fbc7e7b56fd8f0,2437 +- completed: + hackage: HUnit-1.6.2.0@sha256:1a79174e8af616117ad39464cac9de205ca923da6582825e97c10786fda933a4,1588 + pantry-tree: + sha256: 4f20a5a33866171260d0ee1e256c27f53cc84d37a68d498c3e12347f4e3d05b4 + size: 878 + original: + hackage: HUnit-1.6.2.0@sha256:1a79174e8af616117ad39464cac9de205ca923da6582825e97c10786fda933a4,1588 +- completed: + hackage: call-stack-0.4.0@sha256:ac44d2c00931dc20b01750da8c92ec443eb63a7231e8550188cb2ac2385f7feb,1200 + pantry-tree: + sha256: 04134fa69cdd824b4e4bb7f77e7173e0705f27deabdbbf99549c549400191e1e + size: 501 + original: + hackage: call-stack-0.4.0@sha256:ac44d2c00931dc20b01750da8c92ec443eb63a7231e8550188cb2ac2385f7feb,1200 +- completed: + hackage: primitive-0.6.4.0@sha256:5b6a2c3cc70a35aabd4565fcb9bb1dd78fe2814a36e62428a9a1aae8c32441a1,2079 + pantry-tree: + sha256: 5d5e591311664886e88ade3da6880c32adf0d1fe80c55f40a3c93bb91df8fdeb + size: 1517 + original: + hackage: primitive-0.6.4.0 +snapshots: +- completed: + sha256: 0a3be91c2bce851de4755003cfb1d85d62b6f90276231fcc305729c0c5c864a9 + size: 537868 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/9/21.yaml + original: lts-9.21 diff --git a/stack/ghc-8.10.7.yaml b/stack/ghc-8.10.7.yaml new file mode 100644 index 0000000..0ae1abb --- /dev/null +++ b/stack/ghc-8.10.7.yaml @@ -0,0 +1,5 @@ +resolver: lts-18.28 +system-ghc: true +packages: +- ../Color +extra-deps: [] diff --git a/stack/ghc-8.2.2.yaml.lock b/stack/ghc-8.2.2.yaml.lock new file mode 100644 index 0000000..a706d13 --- /dev/null +++ b/stack/ghc-8.2.2.yaml.lock @@ -0,0 +1,110 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 + pantry-tree: + sha256: e509268878581ec17929cab9ee6cc30ef05f6c203e760f49865547249fbb9d48 + size: 2724 + original: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 +- completed: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 + pantry-tree: + sha256: f79eee2f6a00b2c649f993a7b358827702373cbc931ced55ebdfb59625540403 + size: 2202 + original: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 +- completed: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 + pantry-tree: + sha256: 32f9dc84cb1845c5020bc9cb5c5c56e890d54d16b0cbf9c788825abb45165499 + size: 870 + original: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 +- completed: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 + pantry-tree: + sha256: 1632476e4cdd37f323f81b2df0d06efe542ca3b02ab0097e1cd95d12c0fc2003 + size: 334 + original: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 +- completed: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 + pantry-tree: + sha256: 6a16ac4bafb5a68a0918ac6c815f8b24062959341c7f68b85ef0a7a181e792bc + size: 8050 + original: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 +- completed: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 + pantry-tree: + sha256: 7761094914f253af8eff3e0d14e1e0317a7e260f2d4bd4bd44d5d222fe0ba3d6 + size: 3601 + original: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 +- completed: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 + pantry-tree: + sha256: 8128733a7ef4760bbe5d978f2145fdcb29f4491b17db11e8c05b409441ceecb4 + size: 532 + original: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 +- completed: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 + pantry-tree: + sha256: 2d1c4ccbd0c9047311d1bd24989714df844003c258964ef65d542f6627dc0fed + size: 1080 + original: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 +- completed: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 + pantry-tree: + sha256: 5b6dbda3749d16d5cc2837ca5a766d1544e1bad1ee6ce220b82379d42dd8e853 + size: 2479 + original: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 +- completed: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 + pantry-tree: + sha256: cbbdda422f623b55b4633ead26aa65c820f8f8446ef4e96884f940ef94051053 + size: 3783 + original: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 +- completed: + hackage: scheduler-1.5.0@sha256:8b43f2991bf9a720b12192ba99525f705a44aeae9541a7bd73fbc7e7b56fd8f0,2437 + pantry-tree: + sha256: 18de6354961aab66e7aafb6b7a21edfa2239cd202a61338468ebe0840b826e04 + size: 921 + original: + hackage: scheduler-1.5.0@sha256:8b43f2991bf9a720b12192ba99525f705a44aeae9541a7bd73fbc7e7b56fd8f0,2437 +- completed: + hackage: primitive-0.6.4.0@sha256:5b6a2c3cc70a35aabd4565fcb9bb1dd78fe2814a36e62428a9a1aae8c32441a1,2079 + pantry-tree: + sha256: 5d5e591311664886e88ade3da6880c32adf0d1fe80c55f40a3c93bb91df8fdeb + size: 1517 + original: + hackage: primitive-0.6.4.0@sha256:5b6a2c3cc70a35aabd4565fcb9bb1dd78fe2814a36e62428a9a1aae8c32441a1,2079 +- completed: + hackage: pvar-0.2.0.0@sha256:786ab43a3e7921d0086e723e620120543200c57b53f5e0f6ef1cb570c94a9144,1825 + pantry-tree: + sha256: ee0d47cbd05d622c53c9d61d51e7a84019c7e164b55b1676ba848763776ebfa8 + size: 699 + original: + hackage: pvar-0.2.0.0@sha256:786ab43a3e7921d0086e723e620120543200c57b53f5e0f6ef1cb570c94a9144,1825 +- completed: + hackage: unliftio-core-0.1.2.0@sha256:b0a7652ffce2284a6cebe05c99eb60573a8fb6631163f34b0b30a80b4a78cb23,1081 + pantry-tree: + sha256: 9d970bf5f98e68e8fc129b04d6c9d8eb1e641c7556ffd0f0a168a259335b6fd7 + size: 328 + original: + hackage: unliftio-core-0.1.2.0 +snapshots: +- completed: + sha256: 341870ac98d8a9f8f77c4adf2e9e0b22063e264a7fbeb4c85b7af5f380dac60e + size: 527836 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/11/22.yaml + original: lts-11.22 diff --git a/stack/ghc-8.4.4.yaml b/stack/ghc-8.4.4.yaml new file mode 100644 index 0000000..2a77702 --- /dev/null +++ b/stack/ghc-8.4.4.yaml @@ -0,0 +1,16 @@ +resolver: lts-12.26 +system-ghc: true +packages: +- ../Color +extra-deps: +- JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 +- QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 +- splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 +- cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 +- doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 +- hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 +- hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 +- hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 +- massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 +- massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 +- scheduler-1.4.2.1@sha256:26fb16ccf5f41ee9144f8c77a5228163968543ae5cc8242c761e69ff8f579e07,2863 diff --git a/stack/ghc-8.4.4.yaml.lock b/stack/ghc-8.4.4.yaml.lock new file mode 100644 index 0000000..4e57bf4 --- /dev/null +++ b/stack/ghc-8.4.4.yaml.lock @@ -0,0 +1,89 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 + pantry-tree: + sha256: e509268878581ec17929cab9ee6cc30ef05f6c203e760f49865547249fbb9d48 + size: 2724 + original: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 +- completed: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 + pantry-tree: + sha256: f79eee2f6a00b2c649f993a7b358827702373cbc931ced55ebdfb59625540403 + size: 2202 + original: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 +- completed: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 + pantry-tree: + sha256: 32f9dc84cb1845c5020bc9cb5c5c56e890d54d16b0cbf9c788825abb45165499 + size: 870 + original: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 +- completed: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 + pantry-tree: + sha256: 1632476e4cdd37f323f81b2df0d06efe542ca3b02ab0097e1cd95d12c0fc2003 + size: 334 + original: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 +- completed: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 + pantry-tree: + sha256: 6a16ac4bafb5a68a0918ac6c815f8b24062959341c7f68b85ef0a7a181e792bc + size: 8050 + original: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 +- completed: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 + pantry-tree: + sha256: 7761094914f253af8eff3e0d14e1e0317a7e260f2d4bd4bd44d5d222fe0ba3d6 + size: 3601 + original: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 +- completed: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 + pantry-tree: + sha256: 8128733a7ef4760bbe5d978f2145fdcb29f4491b17db11e8c05b409441ceecb4 + size: 532 + original: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 +- completed: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 + pantry-tree: + sha256: 2d1c4ccbd0c9047311d1bd24989714df844003c258964ef65d542f6627dc0fed + size: 1080 + original: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 +- completed: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 + pantry-tree: + sha256: 5b6dbda3749d16d5cc2837ca5a766d1544e1bad1ee6ce220b82379d42dd8e853 + size: 2479 + original: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 +- completed: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 + pantry-tree: + sha256: cbbdda422f623b55b4633ead26aa65c820f8f8446ef4e96884f940ef94051053 + size: 3783 + original: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 +- completed: + hackage: scheduler-1.4.2.1@sha256:26fb16ccf5f41ee9144f8c77a5228163968543ae5cc8242c761e69ff8f579e07,2863 + pantry-tree: + sha256: 42fcb8caa4bb53898438209ebf003a1b3b8781c37b0ae16846e00e1c61ab7510 + size: 838 + original: + hackage: scheduler-1.4.2.1@sha256:26fb16ccf5f41ee9144f8c77a5228163968543ae5cc8242c761e69ff8f579e07,2863 +snapshots: +- completed: + sha256: 95f014df58d0679b1c4a2b7bf2b652b61da8d30de5f571abb0d59015ef678646 + size: 509471 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/12/26.yaml + original: lts-12.26 diff --git a/stack-extra-deps.yaml b/stack/ghc-8.6.5.yaml similarity index 97% rename from stack-extra-deps.yaml rename to stack/ghc-8.6.5.yaml index d68fce7..e196ed9 100644 --- a/stack-extra-deps.yaml +++ b/stack/ghc-8.6.5.yaml @@ -1,6 +1,7 @@ resolver: lts-13.30 +system-ghc: true packages: -- Color +- ../Color extra-deps: - JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 - QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 diff --git a/stack/ghc-8.8.4.yaml b/stack/ghc-8.8.4.yaml new file mode 100644 index 0000000..6bad6d7 --- /dev/null +++ b/stack/ghc-8.8.4.yaml @@ -0,0 +1,16 @@ +resolver: lts-16.31 +system-ghc: true +packages: +- ../Color +extra-deps: +- JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 +- QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 +- splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 +- cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 +- doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 +- hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 +- hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 +- hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 +- massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 +- massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 +- scheduler-1.4.2.1@sha256:26fb16ccf5f41ee9144f8c77a5228163968543ae5cc8242c761e69ff8f579e07,2863 diff --git a/stack/ghc-8.8.4.yaml.lock b/stack/ghc-8.8.4.yaml.lock new file mode 100644 index 0000000..bba7420 --- /dev/null +++ b/stack/ghc-8.8.4.yaml.lock @@ -0,0 +1,89 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 + pantry-tree: + sha256: e509268878581ec17929cab9ee6cc30ef05f6c203e760f49865547249fbb9d48 + size: 2724 + original: + hackage: JuicyPixels-3.3.5@sha256:5c67dc066d67f5045221a8202f701f4c77eab8220f44414c00fadcdc3e4f872b,3911 +- completed: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 + pantry-tree: + sha256: f79eee2f6a00b2c649f993a7b358827702373cbc931ced55ebdfb59625540403 + size: 2202 + original: + hackage: QuickCheck-2.13.2@sha256:ad4e5adbd1c9dc0221a44307b992cb040c515f31095182e47aa7e974bc461df1,6952 +- completed: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 + pantry-tree: + sha256: 32f9dc84cb1845c5020bc9cb5c5c56e890d54d16b0cbf9c788825abb45165499 + size: 870 + original: + hackage: splitmix-0.0.3@sha256:455de9326ae5bbe5492cbb140fefb04cf988501e25b204dabaf755ab67400d9d,4835 +- completed: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 + pantry-tree: + sha256: 1632476e4cdd37f323f81b2df0d06efe542ca3b02ab0097e1cd95d12c0fc2003 + size: 334 + original: + hackage: cabal-doctest-1.0.8@sha256:34dff6369d417df2699af4e15f06bc181d495eca9c51efde173deae2053c197c,1491 +- completed: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 + pantry-tree: + sha256: 6a16ac4bafb5a68a0918ac6c815f8b24062959341c7f68b85ef0a7a181e792bc + size: 8050 + original: + hackage: doctest-0.16.2@sha256:2f96e9bbe9aee11b47453c82c24b3dc76cdbb8a2a7c984dfd60b4906d08adf68,6942 +- completed: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 + pantry-tree: + sha256: 7761094914f253af8eff3e0d14e1e0317a7e260f2d4bd4bd44d5d222fe0ba3d6 + size: 3601 + original: + hackage: hspec-core-2.7.1@sha256:2696420050bafb1b690366b2c0ca8595a27c4597811df036f0c35cf19f46862b,4583 +- completed: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 + pantry-tree: + sha256: 8128733a7ef4760bbe5d978f2145fdcb29f4491b17db11e8c05b409441ceecb4 + size: 532 + original: + hackage: hspec-2.7.1@sha256:0aa48928ce80a34f8ff8c5ef114bb6807edfb8d884bcd7211eceed710e7fb7a8,1769 +- completed: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 + pantry-tree: + sha256: 2d1c4ccbd0c9047311d1bd24989714df844003c258964ef65d542f6627dc0fed + size: 1080 + original: + hackage: hspec-discover-2.7.1@sha256:e8ce36741c06b41de58069814a7d3b7314bdeaab35ae573e3c924739011e0c29,2243 +- completed: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 + pantry-tree: + sha256: 5b6dbda3749d16d5cc2837ca5a766d1544e1bad1ee6ce220b82379d42dd8e853 + size: 2479 + original: + hackage: massiv-test-0.1.2@sha256:93df921acadb56f81b35d3117e020e485b3b26c28a99e2053544878c92de2fcb,3859 +- completed: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 + pantry-tree: + sha256: cbbdda422f623b55b4633ead26aa65c820f8f8446ef4e96884f940ef94051053 + size: 3783 + original: + hackage: massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611 +- completed: + hackage: scheduler-1.4.2.1@sha256:26fb16ccf5f41ee9144f8c77a5228163968543ae5cc8242c761e69ff8f579e07,2863 + pantry-tree: + sha256: 42fcb8caa4bb53898438209ebf003a1b3b8781c37b0ae16846e00e1c61ab7510 + size: 838 + original: + hackage: scheduler-1.4.2.1@sha256:26fb16ccf5f41ee9144f8c77a5228163968543ae5cc8242c761e69ff8f579e07,2863 +snapshots: +- completed: + sha256: 637fb77049b25560622a224845b7acfe81a09fdb6a96a3c75997a10b651667f6 + size: 534126 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/31.yaml + original: lts-16.31 diff --git a/stack/ghc-9.0.2.yaml b/stack/ghc-9.0.2.yaml new file mode 100644 index 0000000..67c6797 --- /dev/null +++ b/stack/ghc-9.0.2.yaml @@ -0,0 +1,5 @@ +resolver: lts-19.33 +system-ghc: true +packages: +- ../Color +extra-deps: [] diff --git a/stack/ghc-9.2.8.yaml b/stack/ghc-9.2.8.yaml new file mode 100644 index 0000000..054351f --- /dev/null +++ b/stack/ghc-9.2.8.yaml @@ -0,0 +1,5 @@ +resolver: lts-20.26 +system-ghc: true +packages: +- ../Color +extra-deps: [] diff --git a/stack/ghc-9.4.8.yaml b/stack/ghc-9.4.8.yaml new file mode 100644 index 0000000..d8f84a4 --- /dev/null +++ b/stack/ghc-9.4.8.yaml @@ -0,0 +1,5 @@ +resolver: lts-21.25 +system-ghc: true +packages: +- ../Color +extra-deps: [] diff --git a/stack/ghc-9.6.6.yaml b/stack/ghc-9.6.6.yaml new file mode 100644 index 0000000..24aff31 --- /dev/null +++ b/stack/ghc-9.6.6.yaml @@ -0,0 +1,5 @@ +resolver: lts-22.43 +system-ghc: true +packages: +- ../Color +extra-deps: [] diff --git a/stack/ghc-9.8.4.yaml b/stack/ghc-9.8.4.yaml new file mode 100644 index 0000000..9216577 --- /dev/null +++ b/stack/ghc-9.8.4.yaml @@ -0,0 +1,5 @@ +resolver: lts-23.00 +system-ghc: true +packages: +- ../Color +extra-deps: []