qute

A software analysis framework built around the QBE intermediate language

git clone https://git.8pit.net/qute.git

  1cabal-version:      3.4
  2name:               qute-cli
  3version:            0.1.0
  4synopsis:           Command-line interface for the Qute software analysis framework.
  5description:
  6  This package provides a command-line interface for the software analysis framework
  7  [Qute](https://hackage.haskell.org/package/qute). Specifically, it includes a concrete
  8  simulator for the [QBE intermediate language](https://c9x.me/compile/) targeted by Qute
  9  and a [symbolic executor](https://en.wikipedia.org/wiki/Symbolic_execution) based on
 10  Qute's [symbolic semantics](https://hackage.haskell.org/package/qute-symex). Further,
 11  it provides a library with utility modules needed for this purpose. This, for example,
 12  includes an implementation of the [KTest format](https://notes.8pit.net/notes/c8o8.html).
 13license:            GPL-3.0-only AND MIT
 14-- license-file:
 15author:             Sören Tempel
 16maintainer:         soeren+hackage@soeren-tempel.net
 17-- copyright:
 18category:           Language
 19build-type:         Simple
 20homepage:           https://git.8pit.net/qute
 21bug-reports:        https://github.com/nmeum/qute/issues
 22extra-source-files: test/testdata/*.ktest
 23
 24source-repository head
 25    type: git
 26    location: https://git.8pit.net/qute.git
 27
 28common warnings
 29    -- -Wall-missed-specializations can be useful too
 30    ghc-options: -Wall
 31
 32common opts
 33    ghc-options: -fspecialise-aggressively
 34
 35common opts-symex
 36    -- -threaded required by simple-smt, see <https://github.com/yav/simple-smt/issues/28>.
 37    ghc-options: -threaded -rtsopts "-with-rtsopts=-N1"
 38
 39library
 40    import:           warnings, opts
 41    hs-source-dirs:   src
 42    default-language: GHC2021
 43
 44    build-depends:
 45      base,
 46      binary,
 47      bytestring,
 48      containers,
 49      qute,
 50      qute-symex,
 51      qute-syntax,
 52      optparse-applicative >=0.17.0.0
 53
 54    exposed-modules:
 55      Data.KTest,
 56      Language.QBE.CmdLine
 57
 58executable qute
 59    import:               warnings, opts
 60    main-is:              Main.hs
 61    hs-source-dirs:       app/qute
 62    default-language:     GHC2021
 63    build-depends:
 64      base,
 65      qute,
 66      qute-cli,
 67      qute-syntax,
 68      optparse-applicative
 69
 70executable qute-symex
 71    import:               warnings, opts, opts-symex
 72    main-is:              Main.hs
 73    hs-source-dirs:       app/qute-symex
 74    default-language:     GHC2021
 75    build-depends:
 76      base,
 77      qute,
 78      qute-cli,
 79      qute-symex,
 80      qute-syntax,
 81      mtl,
 82      filepath,
 83      binary,
 84      directory,
 85      optparse-applicative
 86
 87test-suite qute-cli-test
 88    import:           warnings
 89    default-language: GHC2021
 90    type:             exitcode-stdio-1.0
 91    hs-source-dirs:   test
 92    main-is:          Main.hs
 93
 94    other-modules:
 95      KTest
 96
 97    build-depends:
 98        base,
 99        binary,
100        bytestring,
101        qute-cli,
102        tasty        >=1.4.3,
103        tasty-hunit  >=0.10