packages feed

perf-0.12.0.1: perf.cabal

cabal-version: 3.0
name: perf
version: 0.12.0.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: 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.

build-type: Simple
tested-with: GHC == 8.10 || ==9.2 || ==9.4 || ==9.6 || ==9.8
extra-doc-files:
    ChangeLog.md
    readme.org

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

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

library
    import: ghc-options-stanza
    import: ghc2021-stanza
    hs-source-dirs: src
    build-depends:
        , base                 >=4.7 && <5
        , containers           >=0.6 && <0.8
        , deepseq              >=1.4.4 && <1.6
        , 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 && <1.4
        , recursion-schemes    >=5.2.2 && <5.3
        , text                 >=1.2 && <2.2
        , time                 >=1.9 && <1.13
        , vector               >=0.12.3 && <0.14
    exposed-modules:
        Perf
        Perf.Algos
        Perf.BigO
        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: ghc2021-stanza
    main-is: explore.hs
    hs-source-dirs: app
    build-depends:
        , base                 >=4.7 && <5
        , containers           >=0.6 && <0.8
        , deepseq              >=1.4.4 && <1.6
        , formatn              >=0.2.1 && <0.4
        , gauge                >=0.2.5 && <0.3
        , mtl                  >=2.2.2 && <2.4
        , optparse-applicative >=0.17 && <0.19
        , perf
        , text                 >=1.2 && <2.2
    ghc-options: -O2

benchmark perf-bench
    import: ghc-options-exe-stanza
    import: ghc-options-stanza
    import: ghc2021-stanza
    main-is: bench.hs
    hs-source-dirs: app
    build-depends:
        , base >=4.7 && <5
        , perf
    ghc-options: -O2
    type: exitcode-stdio-1.0