packages feed

perf-0.11.0.0: perf.cabal

cabal-version:      3.0
name:               perf
version:            0.11.0.0
synopsis:           Low-level run time measurement.
description:
  A set of tools to measure performance of Haskell programs.
  See the Perf module for an example and full API documentation.

category:           project
homepage:           https://github.com/tonyday567/perf#readme
bug-reports:        https://github.com/tonyday567/perf/issues
author:             Tony Day, Marco Zocca
maintainer:         tonyday567@gmail.com
copyright:          Tony Day
license:            BSD-3-Clause
license-file:       LICENSE
build-type:         Simple
tested-with:        GHC == 8.10.7 || ==9.2.8 || ==9.4.5 || ==9.6.2
extra-doc-files: ChangeLog.md

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

common ghc2021-stanza
  if impl(ghc >=9.2)
    default-language:
      GHC2021
  if impl(ghc <9.2)
    default-language:
      Haskell2010
    default-extensions:
      BangPatterns
      BinaryLiterals
      ConstrainedClassMethods
      ConstraintKinds
      DeriveDataTypeable
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveLift
      DeriveTraversable
      DoAndIfThenElse
      EmptyCase
      EmptyDataDecls
      EmptyDataDeriving
      ExistentialQuantification
      ExplicitForAll
      FlexibleContexts
      FlexibleInstances
      ForeignFunctionInterface
      GADTSyntax
      GeneralisedNewtypeDeriving
      HexFloatLiterals
      ImplicitPrelude
      InstanceSigs
      KindSignatures
      MonomorphismRestriction
      MultiParamTypeClasses
      NamedFieldPuns
      NamedWildCards
      NumericUnderscores
      PatternGuards
      PolyKinds
      PostfixOperators
      RankNTypes
      RelaxedPolyRec
      ScopedTypeVariables
      StandaloneDeriving
      StarIsType
      TraditionalRecordSyntax
      TupleSections
      TypeApplications
      TypeOperators
      TypeSynonymInstances
  if impl(ghc <9.2) && impl(ghc >=8.10)
    default-extensions:
      ImportQualifiedPost
      StandaloneKindSignatures

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

library
  import: ghc2021-stanza
  import: ghc-options-stanza
  exposed-modules:
    Perf
    Perf.Algos
    Perf.BigO
    Perf.Count
    Perf.Measure
    Perf.Report
    Perf.Space
    Perf.Stats
    Perf.Time
    Perf.Types

  hs-source-dirs:     src
  build-depends:
    base >=4.7 && <5,
    containers ^>=0.6,
    deepseq >=1.4.4 && <1.5,
    formatn >=0.2.1 && < 0.4,
    mtl >=2.2.2 && <2.4,
    numhask-space >=0.10 && < 0.12,
    optparse-applicative >=0.17 && <0.19,
    rdtsc ^>=1.3,
    recursion-schemes ^>=5.2.2,
    text >=1.2 && <2.1,
    time >=1.9 && <1.13,
    vector >=0.12.3 && <0.14,

  ghc-options:        -O2

executable perf-explore
  import: ghc2021-stanza
  import: ghc-options-stanza
  main-is:          explore.hs
  hs-source-dirs:   app
  build-depends:
    base >=4.7 && <5,
    containers ^>=0.6,
    deepseq >=1.4.4 && <1.5,
    formatn >=0.2.1 && <0.4,
    gauge ^>=0.2.5,
    mtl >=2.2.2 && <2.4,
    optparse-applicative >=0.17 && <0.19,
    perf,
    text >=1.2 && <2.1,
  ghc-options:      -O2