packages feed

reflex-0.9.4.0: reflex.cabal

cabal-version:      1.22
name:               reflex
version:            0.9.4.0
license:            BSD3
license-file:       LICENSE
maintainer:         ryan.trinkle@gmail.com
author:             Ryan Trinkle
stability:          Experimental
tested-with:
    ghc ==8.4.4 || ==8.6.5 || ==8.8.1 || ==8.10.7 || ==9.0.1 || ==9.2.5 || ==9.4.5 || ==9.6.1 || ==9.8.2 || ==9.10.1 || ==9.12.2

homepage:           https://reflex-frp.org
bug-reports:        https://github.com/reflex-frp/reflex/issues
synopsis:           Higher-order Functional Reactive Programming
description:
    Interactive programs without callbacks or side-effects.
    Functional Reactive Programming (FRP) uses composable events and time-varying
    values to describe interactive systems as pure functions.
    Just like other pure functional code, functional reactive code is easier
    to get right on the first try, maintain, and reuse.
    .
    Reflex is a fully-deterministic, higher-order Functional Reactive Programming
    interface and an engine that efficiently implements that interface.
    .
    <https://reflex-frp.org>

category:           FRP
build-type:         Simple
extra-source-files:
    README.md
    Quickref.md
    ChangeLog.md

source-repository head
    type:     git
    location: https://github.com/reflex-frp/reflex

flag debug-trace-events
    description:
        Add instrumentation that outputs the stack trace of the definition of an event whenever it is subscribed to. Warning: It is very slow!

    default:     False
    manual:      True

flag fast-weak
    description:
        Use the primitive implementation of FastWeak in GHCJS; note that this requires GHCJS to be built with FastWeak and FastWeakBag present in the RTS, which is not the default

    default:     False
    manual:      True

flag debug-propagation
    description: Enable debugging of spider internals
    default:     False
    manual:      True

flag debug-cycles
    description: Enable debugging of event cycles
    default:     False
    manual:      True

flag split-these
    description: Use split these/semialign packages
    manual:      False
    default:     True

library
    exposed-modules:
        Control.Monad.ReaderIO
        Data.AppendMap
        Data.FastMutableIntMap
        Data.FastWeakBag
        Data.Map.Misc
        Data.WeakBag
        Reflex
        Reflex.Class
        Reflex.Adjustable.Class
        Reflex.BehaviorWriter.Base
        Reflex.BehaviorWriter.Class
        Reflex.Collection
        Reflex.Dynamic
        Reflex.Dynamic.TH
        Reflex.Dynamic.Uniq
        Reflex.DynamicWriter
        Reflex.DynamicWriter.Base
        Reflex.DynamicWriter.Class
        Reflex.EventWriter
        Reflex.EventWriter.Base
        Reflex.EventWriter.Class
        Reflex.FastWeak
        Reflex.FunctorMaybe
        Reflex.Host.Class
        Reflex.Host.Headless
        Reflex.Network
        Reflex.NotReady.Class
        Reflex.PerformEvent.Base
        Reflex.PerformEvent.Class
        Reflex.PostBuild.Base
        Reflex.PostBuild.Class
        Reflex.Profiled
        Reflex.Pure
        Reflex.Query.Base
        Reflex.Query.Class
        Reflex.Requester.Base
        Reflex.Requester.Base.Internal
        Reflex.Requester.Class
        Reflex.Spider
        Reflex.Spider.Internal
        Reflex.Time
        Reflex.TriggerEvent.Base
        Reflex.TriggerEvent.Class
        Reflex.Widget.Basic
        Reflex.Workflow

    reexported-modules:
        patch:Data.Functor.Misc
      , patch:Data.Patch as Reflex.Patch
      , patch:Data.Patch.Class as Reflex.Patch.Class
      , patch:Data.Patch.DMap as Reflex.Patch.DMap
      , patch:Data.Patch.DMapWithMove as Reflex.Patch.DMapWithMove
      , patch:Data.Patch.IntMap as Reflex.Patch.IntMap
      , patch:Data.Patch.Map as Reflex.Patch.Map
      , patch:Data.Patch.MapWithMove as Reflex.Patch.MapWithMove

    hs-source-dirs:     src
    default-language:   Haskell2010
    ghc-options:
        -Wall -fwarn-redundant-constraints -fwarn-tabs
        -funbox-strict-fields -O2 -fspecialise-aggressively

    build-depends:
        MemoTrie == 0.6.*
      , base >= 4.11 && < 4.22
      , bifunctors >= 5.2 && < 5.7
      , comonad >= 5.0.4 && < 5.1
      , commutative-semigroups >= 0.1 && <0.3
      , constraints >= 0.10 && <0.15
      , constraints-extras >= 0.3 && < 0.5
      , containers >= 0.6 && < 0.8
      , data-default >= 0.5 && < 0.9
      , dependent-map >= 0.3 && < 0.5
      , dependent-sum >= 0.6 && < 0.8
      , exceptions >= 0.10 && < 0.11
      , exception-transformers >= 0.4 && < 0.5
      , mmorph >= 1.0 && < 1.3
      , monad-control >= 1.0.1 && < 1.1
      , mtl >= 2.1 && < 2.4
      , patch >= 0.0.7 && < 0.1
      , prim-uniq >= 0.1.0.1 && < 0.3
      , primitive >= 0.5 && < 0.10
      , profunctors >= 5.3 && < 5.7
      , random >= 1.1 && < 1.4
      , ref-tf >= 0.4 && < 0.6
      , reflection == 2.1.*
      , semigroupoids >= 4.0 && < 7
      , stm >= 2.4 && < 2.6
      , syb >= 0.5 && < 0.8
      , time >= 1.4 && < 1.15
      , transformers >= 0.5 && < 0.7
      , unbounded-delays >= 0.1.0.0 && < 0.2
      , witherable >= 0.4 && < 0.6
      , haskell-src-exts >= 1.16 && < 1.24
      , haskell-src-meta >= 0.6 && < 0.9
      , template-haskell >= 2.9 && < 2.24

    other-extensions:
      TemplateHaskell

    if flag(split-these)
        build-depends:
            these >=1 && <1.3
          , semialign >=1 && <1.4
          , monoidal-containers >=0.6.2.0 && <0.7

    else
        build-depends:
            these >=0.4 && <0.9
          , monoidal-containers ==0.4.0.0

    if flag(debug-trace-events)
        cpp-options:   -DDEBUG_TRACE_EVENTS
        build-depends: bytestring >=0.10.8 && <0.11

    if flag(debug-propagation)
        cpp-options:
            -DDEBUG -DDEBUG_TRACE_PROPAGATION -DDEBUG_TRACE_INVALIDATION

    if flag(debug-cycles)
        cpp-options: -DDEBUG_CYCLES

    if flag(fast-weak) && impl(ghcjs >=0)
        cpp-options: -DGHCJS_FAST_WEAK

    if impl(ghcjs)
        build-depends: ghcjs-base >=0.2 && <0.3

test-suite semantics
    type:             exitcode-stdio-1.0
    main-is:          semantics.hs
    hs-source-dirs:   test
    other-modules:
        Reflex.Bench.Focused
        Reflex.Plan.Pure
        Reflex.Plan.Reflex
        Reflex.Test
        Reflex.Test.Micro
        Reflex.TestPlan

    default-language: Haskell2010
    ghc-options:      -O2 -Wall -rtsopts
    build-depends:
        base >= 4.11 && < 4.22
      , bifunctors
      , containers
      , deepseq
      , dependent-map
      , dependent-sum
      , mtl
      , ref-tf
      , reflex
      , split
      , transformers

test-suite CrossImpl
    type:             exitcode-stdio-1.0
    main-is:          Reflex/Test/CrossImpl.hs
    hs-source-dirs:   test
    other-modules:
        Reflex.Test
        Reflex.TestPlan
        Reflex.Plan.Reflex
        Reflex.Plan.Pure

    default-language: Haskell2010
    ghc-options:      -O2 -Wall -rtsopts
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , dependent-map
      , dependent-sum
      , deepseq
      , mtl
      , transformers
      , ref-tf
      , reflex

test-suite hlint
    type:             exitcode-stdio-1.0
    main-is:          hlint.hs
    hs-source-dirs:   test
    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , directory
      , filepath
      , filemanip

    if impl(ghc >=9.6)
        buildable: False

    if impl(ghc <9.2)
        build-depends: hlint (<2.1 || >=2.2.2) && <3.5

    else
        build-depends: hlint >=3.5 && <3.6

    if impl(ghcjs >=0) || arch(javascript)
        buildable: False

test-suite EventWriterT
    type:             exitcode-stdio-1.0
    main-is:          EventWriterT.hs
    hs-source-dirs:   test
    other-modules:    Test.Run
    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , deepseq
      , dependent-map
      , dependent-sum
      , lens
      , mtl
      , these
      , transformers
      , reflex
      , ref-tf

    if flag(split-these)
        build-depends: these-lens

test-suite DebugCycles
    type:             exitcode-stdio-1.0
    main-is:          DebugCycles.hs
    hs-source-dirs:   test
    other-modules:    Test.Run
    default-language: Haskell2010
    ghc-options:      -threaded
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , deepseq
      , dependent-map
      , dependent-sum
      , hspec
      , lens
      , mtl
      , these
      , transformers
      , reflex
      , ref-tf
      , witherable

    if flag(split-these)
        build-depends:
            these-lens
          , semialign

test-suite RequesterT
    type:             exitcode-stdio-1.0
    main-is:          RequesterT.hs
    hs-source-dirs:   test
    other-modules:
        Reflex.TestPlan
        Reflex.Plan.Pure
        Test.Run

    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , constraints
      , constraints-extras
      , containers
      , deepseq
      , dependent-map
      , dependent-sum
      , lens
      , mtl
      , ref-tf
      , reflex
      , text
      , these
      , transformers

    if flag(split-these)
        build-depends: these-lens

test-suite Headless
    type:             exitcode-stdio-1.0
    main-is:          Headless.hs
    hs-source-dirs:   test
    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , reflex

test-suite Adjustable
    type:             exitcode-stdio-1.0
    main-is:          Adjustable.hs
    hs-source-dirs:   test
    other-modules:    Test.Run
    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , dependent-sum
      , reflex
      , ref-tf
      , these

test-suite QueryT
    type:             exitcode-stdio-1.0
    main-is:          QueryT.hs
    hs-source-dirs:   test
    other-modules:
        Test.Run
        Reflex.TestPlan
        Reflex.Plan.Reflex
        Reflex.Plan.Pure

    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , commutative-semigroups
      , containers
      , dependent-map
      , dependent-sum
      , deepseq
      , lens
      , monoidal-containers
      , mtl
      , patch
      , ref-tf
      , reflex
      , these
      , transformers

    if flag(split-these)
        build-depends:
            semialign
          , these-lens

test-suite GC-Semantics
    type:             exitcode-stdio-1.0
    main-is:          GC.hs
    hs-source-dirs:   test
    other-modules:
        Reflex.Plan.Pure
        Reflex.Plan.Reflex
        Reflex.TestPlan
        Test.Run

    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , dependent-sum
      , dependent-map
      , deepseq
      , mtl
      , patch
      , these
      , transformers
      , reflex
      , ref-tf

    if flag(split-these)
        build-depends: semialign

test-suite rootCleanup
    type:             exitcode-stdio-1.0
    main-is:          rootCleanup.hs
    hs-source-dirs:   test
    other-modules:
        Reflex.Plan.Pure
        Reflex.TestPlan
        Test.Run

    default-language: Haskell2010
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , deepseq
      , dependent-sum
      , mtl
      , reflex
      , ref-tf
      , these

benchmark spider-bench
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    hs-source-dirs:   bench test
    other-modules:
        Reflex.TestPlan
        Reflex.Plan.Reflex
        Reflex.Bench.Focused

    default-language: Haskell2010
    ghc-options:      -Wall -O2 -rtsopts
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , criterion
      , deepseq
      , dependent-map
      , dependent-sum
      , ref-tf
      , mtl
      , primitive
      , reflex
      , split
      , stm
      , transformers

    if arch(javascript)
        buildable: False

benchmark saulzar-bench
    type:             exitcode-stdio-1.0
    main-is:          RunAll.hs
    c-sources:        bench-cbits/checkCapability.c
    hs-source-dirs:   bench test
    other-modules:
        Reflex.TestPlan
        Reflex.Plan.Reflex
        Reflex.Bench.Focused

    default-language: Haskell2010
    ghc-options:      -Wall -O2 -rtsopts -threaded
    build-depends:
        base >= 4.11 && < 4.22
      , containers
      , criterion
      , deepseq
      , dependent-map
      , dependent-sum
      , loch-th
      , mtl
      , primitive
      , process
      , ref-tf
      , reflex
      , split
      , stm
      , time
      , transformers

    if arch(javascript)
        buildable: False