packages feed

qute-cli-0.1.0: qute-cli.cabal

cabal-version:      3.4
name:               qute-cli
version:            0.1.0
synopsis:           Command-line interface for the Qute software analysis framework.
description:
  This package provides a command-line interface for the software analysis framework
  [Qute](https://hackage.haskell.org/package/qute). Specifically, it includes a concrete
  simulator for the [QBE intermediate language](https://c9x.me/compile/) targeted by Qute
  and a [symbolic executor](https://en.wikipedia.org/wiki/Symbolic_execution) based on
  Qute's [symbolic semantics](https://hackage.haskell.org/package/qute-symex). Further,
  it provides a library with utility modules needed for this purpose. This, for example,
  includes an implementation of the [KTest format](https://notes.8pit.net/notes/c8o8.html).
license:            GPL-3.0-only AND MIT
-- license-file:
author:             Sören Tempel
maintainer:         soeren+hackage@soeren-tempel.net
-- copyright:
category:           Language
build-type:         Simple
homepage:           https://git.8pit.net/qute
bug-reports:        https://github.com/nmeum/qute/issues

source-repository head
    type: git
    location: https://git.8pit.net/qute.git

common warnings
    -- -Wall-missed-specializations can be useful too
    ghc-options: -Wall

common opts
    ghc-options: -fspecialise-aggressively

library
    import:           warnings, opts
    hs-source-dirs:   src
    default-language: GHC2021

    build-depends:
      base >= 4.16.4.0 && < 4.23,
      binary >= 0.8.9.0 && < 0.9,
      bytestring >= 0.11.4.0 && < 0.13,
      containers >= 0.6.5.1 && < 0.9,
      qute == 0.1.*,
      qute-symex == 0.1.*,
      qute-syntax == 0.1.*,
      optparse-applicative >=0.17.0.0 && < 0.20

    exposed-modules:
      Data.KTest,
      Language.QBE.CmdLine

executable qute
    import:               warnings, opts
    main-is:              Main.hs
    hs-source-dirs:       app/qute
    default-language:     GHC2021
    build-depends:
      base,
      qute,
      qute-cli,
      qute-syntax,
      optparse-applicative

executable qute-symex
    import:               warnings, opts
    main-is:              Main.hs
    hs-source-dirs:       app/qute-symex
    default-language:     GHC2021
    build-depends:
      base,
      qute,
      qute-cli,
      qute-symex,
      qute-syntax,
      mtl >= 2.2.2 && < 2.4,
      filepath >= 1.4.2.2 && < 1.6,
      binary,
      directory >= 1.3.6.2 && < 1.4,
      optparse-applicative

test-suite qute-cli-test
    import:           warnings
    default-language: GHC2021
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          Main.hs

    other-modules:
      KTest

    build-depends:
        base,
        binary,
        bytestring,
        qute-cli,
        tasty        >=1.4.3,
        tasty-hunit  >=0.10