mirror of
https://github.com/polysemy-research/polysemy.git
synced 2024-12-02 11:54:06 +03:00
faaf1e3a96
Turns out haddocks have been broken forever, but because of haskell/cabal#5977 we never noticed. This PR fixes CI so it breaks (see 6f915b6
), and then fixes it by changing the GHC versions under which we're allowed to use loopbreaker. Fixes #160
123 lines
2.9 KiB
YAML
123 lines
2.9 KiB
YAML
name: polysemy
|
|
version: 0.6.0.0
|
|
github: "isovector/polysemy"
|
|
license: BSD3
|
|
author: "Sandy Maguire"
|
|
maintainer: "sandy@sandymaguire.me"
|
|
copyright: "2019 Sandy Maguire"
|
|
|
|
extra-source-files:
|
|
- README.md
|
|
- ChangeLog.md
|
|
|
|
synopsis: Higher-order, low-boilerplate, zero-cost free monads.
|
|
category: Language
|
|
|
|
description: Please see the README on GitHub at <https://github.com/isovector/polysemy#readme>
|
|
|
|
dependencies:
|
|
- base >= 4.9 && < 5
|
|
- containers >= 0.5 && < 0.7
|
|
- mtl >= 2.2.2 && < 3
|
|
- syb >= 0.7 && < 0.8
|
|
- template-haskell >= 2.12.0.0 && < 3
|
|
- th-abstraction >= 0.3.1.0 && < 0.4
|
|
- transformers >= 0.5.2.0 && < 0.6
|
|
- first-class-families >= 0.5.0.0 && < 0.6
|
|
- unagi-chan >= 0.4.0.0 && < 0.5
|
|
- async >= 2.2 && < 3
|
|
- type-errors >= 0.2.0.0
|
|
|
|
default-extensions:
|
|
- DataKinds
|
|
- DeriveFunctor
|
|
- FlexibleContexts
|
|
- GADTs
|
|
- LambdaCase
|
|
- PolyKinds
|
|
- RankNTypes
|
|
- ScopedTypeVariables
|
|
- StandaloneDeriving
|
|
- TypeApplications
|
|
- TypeOperators
|
|
- TypeFamilies
|
|
- UnicodeSyntax
|
|
|
|
when:
|
|
- condition: impl(ghc < 8.6)
|
|
default-extensions:
|
|
- MonadFailDesugaring
|
|
- TypeInType
|
|
|
|
- condition: impl(ghc >= 8.7)
|
|
dependencies:
|
|
- loopbreaker >= 0.1 && < 0.2
|
|
|
|
flags:
|
|
dump-core:
|
|
description: Dump HTML for the core generated by GHC during compilation
|
|
default: False
|
|
manual: True
|
|
error-messages:
|
|
description: Provide custom error messages
|
|
default: True
|
|
manual: True
|
|
|
|
library:
|
|
ghc-options: -Wall
|
|
source-dirs: src
|
|
other-modules: Polysemy.Internal.PluginLookup
|
|
|
|
when:
|
|
- condition: flag(dump-core)
|
|
dependencies:
|
|
- dump-core
|
|
ghc-options:
|
|
- -fplugin=DumpCore
|
|
- -fplugin-opt=DumpCore:core-html
|
|
|
|
- condition: impl(ghc < 8.2.2)
|
|
dependencies:
|
|
- unsupported-ghc-version > 1 && < 1
|
|
|
|
# We use this plugin to get to more agressive inlining without need for
|
|
# explicit "loopbreakers" in function definitions all over ther codebase
|
|
# --- sadly it can only work on newer versions of GHC currently
|
|
- condition: impl(ghc >= 8.7)
|
|
ghc-options:
|
|
- -fplugin=Loopbreaker
|
|
|
|
- condition: flag(error-messages)
|
|
then:
|
|
# dummy value because cabal is stupid
|
|
cpp-options: -DCABAL_SERIOUSLY_CMON_MATE
|
|
else:
|
|
cpp-options: -DNO_ERROR_MESSAGES
|
|
|
|
tests:
|
|
polysemy-test:
|
|
main: Main.hs
|
|
source-dirs: test
|
|
ghc-options:
|
|
- -threaded
|
|
- -rtsopts
|
|
- -with-rtsopts=-N
|
|
build-tools:
|
|
- hspec-discover >= 2.0
|
|
dependencies:
|
|
- polysemy
|
|
- inspection-testing >= 0.4.2 && < 0.5
|
|
- hspec >= 2.6.0 && < 3
|
|
- doctest >= 0.16.0.1 && < 0.17
|
|
|
|
benchmarks:
|
|
polysemy-bench:
|
|
source-dirs: bench
|
|
main: countDown.hs
|
|
dependencies:
|
|
- criterion
|
|
- free
|
|
- freer-simple
|
|
- mtl
|
|
- polysemy
|