packages feed

perf-0.14.2.1: perf.cabal

cabal-version: 3.0
name: perf
version: 0.14.2.1
license: BSD-3-Clause
license-file: LICENSE
copyright: Tony Day (c) 2018
category: performance
author: Tony Day, Marco Zocca
maintainer: tonyday567@gmail.com
homepage: https://github.com/tonyday567/perf#readme
bug-reports: https://github.com/tonyday567/perf/issues
synopsis: Performance tools
description:
  A set of tools to measure performance of Haskell programs.
  See the Perf module and readme for an example and full API documentation.

build-type: Simple
tested-with:
  ghc ==9.10.3
  ghc ==9.12.2
  ghc ==9.14.1

extra-doc-files:
  ChangeLog.md
  readme.md

source-repository head
  type: git
  location: https://github.com/tonyday567/perf

common ghc-options-exe-stanza
  ghc-options:
    -fforce-recomp
    -funbox-strict-fields
    -rtsopts
    -threaded
    -with-rtsopts=-N

common ghc-options-stanza
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wpartial-fields
    -Wredundant-constraints
    -fproc-alignment=64

common ghc2024-additions
  default-extensions:
    DataKinds
    DerivingStrategies
    DisambiguateRecordFields
    ExplicitNamespaces
    GADTs
    LambdaCase
    MonoLocalBinds
    RoleAnnotations

common ghc2024-stanza
  if impl(ghc >=9.10)
    default-language:
      GHC2024
  else
    import: ghc2024-additions
    default-language:
      GHC2021

library
  import: ghc-options-stanza
  import: ghc2024-stanza
  hs-source-dirs: src
  build-depends:
    base >=4.14 && <5,
    boxes >=0.1.5 && <0.2,
    chart-svg >=0.7 && <0.9,
    clock >=0.8 && <0.9,
    containers >=0.6 && <0.9,
    deepseq >=1.4.4 && <1.6,
    formatn >=0.2.1 && <0.4,
    mtl >=2.2.2 && <2.4,
    numhask-space >=0.10 && <0.14,
    optics-core >=0.4.1 && <0.5,
    optparse-applicative >=0.17 && <0.20,
    prettychart >=0.3 && <0.4,
    prettyprinter >=1.7.1 && <1.8,
    recursion-schemes >=5.2.2 && <5.3,
    text >=1.2 && <2.2,
    vector >=0.12.3 && <0.14,

  exposed-modules:
    Perf
    Perf.Algos
    Perf.BigO
    Perf.Chart
    Perf.Count
    Perf.Measure
    Perf.Report
    Perf.Space
    Perf.Stats
    Perf.Time
    Perf.Types

  ghc-options: -O2

executable perf-explore
  import: ghc-options-exe-stanza
  import: ghc-options-stanza
  import: ghc2024-stanza
  main-is: explore.hs
  hs-source-dirs: app
  build-depends:
    base >=4.14 && <5,
    containers >=0.6 && <0.9,
    deepseq >=1.4.4 && <1.6,
    mtl >=2.2.2 && <2.4,
    optics-core >=0.4.1 && <0.5,
    optparse-applicative >=0.17 && <0.20,
    perf,
    text >=1.2 && <2.2,

  ghc-options: -O2

benchmark perf-bench
  import: ghc-options-exe-stanza
  import: ghc-options-stanza
  import: ghc2024-stanza
  main-is: bench.hs
  hs-source-dirs: app
  build-depends:
    base >=4.14 && <5,
    perf,

  ghc-options: -O2
  type: exitcode-stdio-1.0