Cabal-version: 2.2
Name: crucible-syntax
Version: 0.4.1
Author: Galois Inc.
Maintainer: dtc@galois.com
Build-type: Simple
License: BSD-3-Clause
License-file: LICENSE
Category: Language
Synopsis: A syntax for reading and writing Crucible control-flow graphs
Description:
This package provides a syntax for directly constructing Crucible
control-flow graphs, as well as for observing them.
extra-doc-files: README.txt, CHANGELOG.md
extra-source-files:
common shared
-- Specifying -Wall and -Werror can cause the project to fail to build on
-- newer versions of GHC simply due to new warnings being added to -Wall. To
-- prevent this from happening we manually list which warnings should be
-- considered errors. We also list some warnings that are not in -Wall, though
-- try to avoid "opinionated" warnings (though this judgement is clearly
-- subjective).
--
-- Warnings are grouped by the GHC version that introduced them, and then
-- alphabetically.
--
-- A list of warnings and the GHC version in which they were introduced is
-- available here:
-- https://ghc.gitlab.haskell.org/ghc/doc/users_guide/using-warnings.html
-- Since GHC 8.10 or earlier:
ghc-options:
-Wall
-Werror=compat-unqualified-imports
-Werror=deferred-type-errors
-Werror=deprecated-flags
-Werror=deprecations
-Werror=deriving-defaults
-Werror=dodgy-foreign-imports
-Werror=duplicate-exports
-Werror=empty-enumerations
-Werror=identities
-Werror=inaccessible-code
-Werror=incomplete-patterns
-Werror=incomplete-record-updates
-Werror=incomplete-uni-patterns
-Werror=inline-rule-shadowing
-Werror=missed-extra-shared-lib
-Werror=missing-exported-signatures
-Werror=missing-fields
-Werror=missing-home-modules
-Werror=missing-methods
-Werror=overflowed-literals
-Werror=overlapping-patterns
-Werror=partial-fields
-Werror=partial-type-signatures
-Werror=simplifiable-class-constraints
-Werror=star-binder
-Werror=star-is-type
-Werror=tabs
-Werror=typed-holes
-Werror=unrecognised-pragmas
-Werror=unrecognised-warning-flags
-Werror=unsupported-calling-conventions
-Werror=unsupported-llvm-version
-Werror=unticked-promoted-constructors
-Werror=unused-imports
-Werror=warnings-deprecations
-Werror=wrong-do-bind
if impl(ghc >= 9.2)
ghc-options:
-Werror=ambiguous-fields
-Werror=operator-whitespace
-Werror=operator-whitespace-ext-conflict
-Werror=redundant-bang-patterns
if impl(ghc >= 9.4)
ghc-options:
-Werror=forall-identifier
-Werror=misplaced-pragmas
-Werror=redundant-strictness-flags
-Werror=type-equality-out-of-scope
-Werror=type-equality-requires-operators
ghc-prof-options: -O2 -fprof-auto-top
default-language: Haskell2010
library
default-language: Haskell2010
build-depends:
base >= 4.9 && < 4.20,
bv-sized >= 1.0.0,
containers,
crucible >= 0.1,
lens,
mtl,
parameterized-utils >= 0.1.7,
prettyprinter >= 1.7.0,
megaparsec >= 7.0 && < 9.7,
text,
transformers,
vector,
what4
hs-source-dirs: src
exposed-modules:
Lang.Crucible.Syntax.Atoms
Lang.Crucible.Syntax.Concrete
Lang.Crucible.Syntax.SExpr
Lang.Crucible.Syntax.Overrides
Lang.Crucible.Syntax.ExprParse
Lang.Crucible.Syntax.Monad
Lang.Crucible.Syntax.Prog
ghc-options: -Wall -Werror=incomplete-patterns -Werror=missing-methods -Werror=overlapping-patterns
ghc-prof-options: -O2 -fprof-auto-top
test-suite crucible-syntax-tests
import: shared
type: exitcode-stdio-1.0
main-is: Tests.hs
hs-source-dirs: test
build-depends:
base,
containers,
crucible,
crucible-syntax,
directory,
filepath,
megaparsec,
parameterized-utils,
tasty,
tasty-golden,
tasty-hunit,
text,
what4