cabal-version: 2.2 name: rhine version: 1.3 synopsis: Functional Reactive Programming with type-level clocks description: Rhine is a library for synchronous and asynchronous Functional Reactive Programming (FRP). It separates the aspects of clocking, scheduling and resampling from each other, and ensures clock-safety on the type level. Signal processing units can be annotated by clocks, which hold the information when data will be input, processed and output. Different components of the signal network will become active at different times, or work at different rates. To schedule the components and allow them to communicate, several standard scheduling and resampling solutions are implemented. Own schedules and resampling buffers can be implemented in a reusable fashion. A (synchronous) program outputting "Hello World!" every tenth of a second looks like this: @flow $ constMCl (putStrLn "Hello World!") \@\@ (waitClock :: Millisecond 100)@ license: BSD-3-Clause license-file: LICENSE author: Manuel Bärenz maintainer: maths@manuelbaerenz.de category: FRP build-type: Simple extra-source-files: ChangeLog.md extra-doc-files: README.md data-files: bench/pg100.txt test/assets/*.txt tested-with: ghc ==9.0.2 ghc ==9.2.8 ghc ==9.4.7 ghc ==9.6.4 ghc ==9.8.2 source-repository head type: git location: https://github.com/turion/rhine.git source-repository this type: git location: https://github.com/turion/rhine.git tag: v1.3 common opts build-depends: automaton ^>=1.3, base >=4.14 && <4.20, monad-schedule ^>=0.1.2, mtl >=2.2 && <2.4, selective ^>=0.7, text >=1.2 && <2.2, time >=1.8, transformers >=0.5, vector-sized >=1.4, if flag(dev) ghc-options: -Werror ghc-options: -W -Wno-unticked-promoted-constructors default-extensions: Arrows DataKinds FlexibleContexts FlexibleInstances ImportQualifiedPost MultiParamTypeClasses NamedFieldPuns NoStarIsType TupleSections TypeApplications TypeFamilies TypeOperators -- Base language which the package is written in. default-language: Haskell2010 common test-deps build-depends: QuickCheck ^>=2.14, tasty >=1.4 && <1.6, tasty-hunit ^>=0.10, tasty-quickcheck ^>=0.10, common bench-deps build-depends: criterion ^>=1.6 library import: opts exposed-modules: FRP.Rhine FRP.Rhine.ClSF FRP.Rhine.ClSF.Core FRP.Rhine.ClSF.Except FRP.Rhine.ClSF.Random FRP.Rhine.ClSF.Reader FRP.Rhine.ClSF.Upsample FRP.Rhine.ClSF.Util FRP.Rhine.Clock FRP.Rhine.Clock.Except FRP.Rhine.Clock.FixedStep FRP.Rhine.Clock.Periodic FRP.Rhine.Clock.Proxy FRP.Rhine.Clock.Realtime.Audio FRP.Rhine.Clock.Realtime.Busy FRP.Rhine.Clock.Realtime.Event FRP.Rhine.Clock.Realtime.Millisecond FRP.Rhine.Clock.Realtime.Never FRP.Rhine.Clock.Realtime.Stdin FRP.Rhine.Clock.Select FRP.Rhine.Clock.Trivial FRP.Rhine.Clock.Unschedule FRP.Rhine.Clock.Util FRP.Rhine.Reactimation FRP.Rhine.Reactimation.ClockErasure FRP.Rhine.Reactimation.Combinators FRP.Rhine.ResamplingBuffer FRP.Rhine.ResamplingBuffer.ClSF FRP.Rhine.ResamplingBuffer.Collect FRP.Rhine.ResamplingBuffer.FIFO FRP.Rhine.ResamplingBuffer.Interpolation FRP.Rhine.ResamplingBuffer.KeepLast FRP.Rhine.ResamplingBuffer.LIFO FRP.Rhine.ResamplingBuffer.Timeless FRP.Rhine.ResamplingBuffer.Util FRP.Rhine.SN FRP.Rhine.SN.Combinators FRP.Rhine.Schedule FRP.Rhine.Type other-modules: FRP.Rhine.ClSF.Except.Util FRP.Rhine.ClSF.Random.Util -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Other library packages from which modules are imported. build-depends: MonadRandom >=0.5, containers >=0.5, deepseq >=1.4, free >=5.1, mmorph ^>=1.2, profunctors ^>=5.6, random >=1.1, simple-affine-space ^>=0.2, sop-core ^>=0.5, text >=1.2 && <2.2, time >=1.8, time-domain ^>=0.1.0.2, transformers >=0.5, -- Directories containing source files. hs-source-dirs: src test-suite test import: opts, test-deps hs-source-dirs: test type: exitcode-stdio-1.0 main-is: Main.hs other-modules: Clock Clock.Except Clock.FixedStep Clock.Millisecond Except Paths_rhine Schedule Util autogen-modules: Paths_rhine build-depends: rhine flag dev description: Enable warnings as errors. Active on ci. default: False manual: True benchmark benchmark import: opts, bench-deps type: exitcode-stdio-1.0 hs-source-dirs: bench autogen-modules: Paths_rhine other-modules: Paths_rhine Sum WordCount build-depends: rhine main-is: Main.hs ghc-options: -Wall if flag(core) ghc-options: -fforce-recomp -ddump-to-file -ddump-simpl -dsuppress-all -dno-suppress-type-signatures -dno-suppress-type-applications test-suite benchmark-test import: opts, bench-deps, test-deps type: exitcode-stdio-1.0 hs-source-dirs: bench autogen-modules: Paths_rhine other-modules: Paths_rhine Sum WordCount build-depends: rhine main-is: Test.hs flag core description: Dump GHC core files for debugging. default: False manual: True