packages feed

theatre-dev-0.0.1: theatre-dev.cabal

cabal-version: 3.0
name:          theatre-dev
version:       0.0.1
category:      Concurrency, Actors
synopsis:      Minimalistic actor library experiments
description:
  Design space exploration for the \"theatre\" library.
  Don\'t expect this lib to maintain a stable API.
  Once clearly useful abstractions emerge, they'll be moved to the
  \"theatre\" lib.
  The namespace "TheatreDev.*" implies the name of an experimental API.

stability:     experimental
homepage:      https://github.com/nikita-volkov/theatre-dev
bug-reports:   https://github.com/nikita-volkov/theatre-dev/issues
author:        Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer:    Nikita Volkov <nikita.y.volkov@mail.ru>
copyright:     (c) 2022, Nikita Volkov
license:       MIT
license-file:  LICENSE

source-repository head
  type:     git
  location: git://github.com/nikita-volkov/theatre-dev.git

common base
  default-language:   Haskell2010
  default-extensions:
    NoImplicitPrelude
    NoMonomorphismRestriction
    ApplicativeDo
    Arrows
    BangPatterns
    BlockArguments
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    LambdaCase
    LiberalTypeSynonyms
    MagicHash
    MultiParamTypeClasses
    MultiWayIf
    NamedFieldPuns
    OverloadedRecordDot
    OverloadedStrings
    ParallelListComp
    PatternGuards
    PatternSynonyms
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    UnboxedTuples

common executable
  import:      base
  ghc-options: -O2 -threaded "-with-rtsopts=-N -I0 -qg"

common test
  import:      base
  ghc-options: -threaded -with-rtsopts=-N

library
  import:          base
  hs-source-dirs:  library
  exposed-modules:
    TheatreDev.Perpetual
    TheatreDev.StmBased
    TheatreDev.Terminal.Actor

  other-modules:
    TheatreDev.ExtrasFor.List
    TheatreDev.ExtrasFor.TBQueue
    TheatreDev.Prelude
    TheatreDev.StmBased.StmStructures.Runner
    TheatreDev.StmBased.Tell
    TheatreDev.StmBased.Wait
    TheatreDev.Terminal.StatefulActorSpec

  build-depends:
    , async >=2.2 && <3
    , base >=4.16 && <5
    , contravariant >=1.3 && <2
    , stm >=2.5.2 && <3
    , unagi-chan >=0.4.1.4 && <0.5
    , vector >=0.13 && <0.14

test-suite hspec
  import:         test
  type:           exitcode-stdio-1.0
  hs-source-dirs: hspec
  main-is:        Main.hs
  other-modules:  TheatreDev.StmBasedSpec
  build-depends:
    , hspec >=2.11.6 && <3
    , rerebase <2
    , theatre-dev