packages feed

deltaq-1.2.0.0: deltaq.cabal

cabal-version:   3.0
name:            deltaq

-- Package Versioning Policy: https://pvp.haskell.org
-- PVP summary:  +-+------- breaking API changes
--               | | +----- non-breaking API additions
--               | | | +--- code changes with no API change
version:         1.2.0.0
synopsis:        Framework for ∆Q System Development
description:
  ∆Q System Development is a paradigm for developing distributed systems
  that meet performance requirements.

  In this paradigm,
  the system designer starts by defining high-level outcomes,
  explores different refinements into combinations of lower-level outcomes,
  and evaluates their performance characteristics.

  The `deltaq` package (pronounced "Delta Q") provides
  data types and functions for

  * outcomes and their combinations
  * evaluating the performance characteristics of outcomes,
    specifically the probability distribution of their completion times
  * rendering outcomes as diagrams

category:        DeltaQ, Distributed Systems, Probability
homepage:        https://github.com/DeltaQ-SD/deltaq
license:         BSD-3-Clause
license-file:    LICENSE
copyright:
  Predictable Network Solutions Ltd., 2003-2025
  PLWORKZ R&D, 2025
author:          Neil Davies, Heinrich Apfelmus
maintainer:      neil.davies@pnsol.ccom
extra-doc-files:
  CHANGELOG.md
  README.md
  images/hops.svg

tested-with:     GHC ==8.10.7 || ==9.6.7 || ==9.10.3

common warnings
  ghc-options: -Wall

source-repository head
  type:     git
  location: https://github.com/DeltaQ-SD/deltaq.git
  subdir:   lib/deltaq

library
  import:           warnings
  hs-source-dirs:   src
  default-language: Haskell2010
  build-depends:
    , base                    >=4.14.3.0 && <5
    , Chart                   >=1.8      && <2
    , deepseq                 >=1.4.4.0  && <1.6
    , lattices                >=2.2      && <2.3
    , probability-polynomial  >=1.0.1    && <1.1
    , diagrams-lib            >=1.4.5    && <1.6
    , diagrams-svg            >=1.5      && <1.6

  exposed-modules:
    DeltaQ
    DeltaQ.Class
    DeltaQ.Diagram
    DeltaQ.Diagram.Internal
    DeltaQ.Expr
    DeltaQ.Methods
    DeltaQ.PiecewisePolynomial
    DeltaQ.Plot

test-suite test
  import:             warnings
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  default-language:   Haskell2010
  build-tool-depends: hspec-discover:hspec-discover
  build-depends:
    , base
    , deltaq
    , hspec                   >=2.11.0 && <2.12
    , probability-polynomial
    , QuickCheck              >=2.14   && <2.18

  main-is:            Spec.hs
  other-modules:
    DeltaQ.ClassSpec
    DeltaQ.DiagramSpec
    DeltaQ.ExprSpec
    DeltaQ.Gen.Term
    DeltaQ.MethodsSpec
    DeltaQ.PiecewisePolynomialSpec

benchmark basic
  import:           warnings
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmark
  default-language: Haskell2010
  build-depends:
    , base
    , bytestring            >=0.11     && <0.13
    , cassava               >=0.5.3.2  && <0.6
    , criterion             >=1.6      && <1.7
    , deepseq
    , deltaq
    , hvega                 >=0.12     && <0.13
    , optparse-applicative  >=0.18.1.0 && <0.20
    , statistics            >=0.16     && <0.17
    , vector                >=0.12     && <0.14

  main-is:          Main.hs
  other-modules:    Benchmark.Plot