cabal-version: 2.4 name: semantic version: 0.8.0.0 synopsis: Framework and executable for analyzing and diffing untrusted code. description: Semantic is a library for parsing, analyzing, and comparing source code across many languages. homepage: http://github.com/github/semantic#readme bug-reports: https://github.com/github/semantic/issues license: MIT license-file: LICENSE author: The Semantic authors maintainer: opensource+semantic@github.com copyright: (c) 2015-2019 GitHub, Inc. category: Language build-type: Simple stability: alpha extra-source-files: README.md tested-with: GHC == 8.6.5 flag release description: Build with optimizations on (for CI or deployment builds) default: False -- GHC extensions shared between targets common haskell default-language: Haskell2010 default-extensions: StrictData ghc-options: -Weverything -Wno-missing-local-signatures -Wno-missing-import-lists -Wno-implicit-prelude -Wno-safe -Wno-unsafe -Wno-name-shadowing -Wno-monomorphism-restriction -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies -- Except in case of vendored dependencies, these deps should be expressed -- as caret-operator bounds relative to a version in Stackage. -- These are currently pinned to lts-13.13. common dependencies build-depends: base >= 4.12 && < 5 , aeson ^>= 1.4.2.0 , algebraic-graphs ^>= 0.3 , async ^>= 2.2.1 , bifunctors ^>= 5.5 , bytestring ^>= 0.10.8.2 , containers ^>= 0.6.0.1 , directory ^>= 1.3.3.0 , fastsum ^>= 0.1.1.0 , fused-effects ^>= 0.5.0.0 , fused-effects-exceptions ^>= 0.2.0.0 , hashable ^>= 1.2.7.0 , tree-sitter ^>= 0.5 , mtl ^>= 2.2.2 , network ^>= 2.8.0.0 , pathtype ^>= 0.8.1 , process ^>= 1.6.3.0 , recursion-schemes ^>= 5.1 , scientific ^>= 0.3.6.2 , safe-exceptions ^>= 0.1.7.0 , semantic-source ^>= 0.0 , semilattices ^>= 0.0.0.3 , streaming ^>= 0.2.2.0 , text ^>= 1.2.3.1 , unix ^>= 2.7.2.2 , lingo ^>= 0.3.0.0 common executable-flags ghc-options: -threaded -rtsopts "-with-rtsopts=-N -A4m -n2m" library import: haskell, dependencies hs-source-dirs: src exposed-modules: -- Analyses & term annotations Analysis.Abstract.Caching.FlowInsensitive , Analysis.Abstract.Caching.FlowSensitive , Analysis.Abstract.Collecting , Analysis.Abstract.Dead , Analysis.Abstract.Graph , Analysis.Abstract.Tracing , Analysis.ConstructorName , Analysis.CyclomaticComplexity , Analysis.TOCSummary , Analysis.Decorator , Analysis.HasTextElement , Analysis.PackageDef -- Semantic assignment , Assigning.Assignment , Assigning.Assignment.Table -- Control structures & interfaces for abstract interpretation , Control.Abstract , Control.Abstract.Context , Control.Abstract.Evaluator , Control.Abstract.Heap , Control.Abstract.Hole , Control.Abstract.Modules , Control.Abstract.Primitive , Control.Abstract.PythonPackage , Control.Abstract.Roots , Control.Abstract.ScopeGraph , Control.Abstract.Value -- Carriers , Control.Carrier.Parse.Measured , Control.Carrier.Parse.Simple -- Effects , Control.Effect.Interpose , Control.Effect.Parse , Control.Effect.REPL , Control.Rewriting -- Datatypes for abstract interpretation , Data.Abstract.Address.Hole , Data.Abstract.Address.Monovariant , Data.Abstract.Address.Precise , Data.Abstract.BaseError , Data.Abstract.Declarations , Data.Abstract.Evaluatable , Data.Abstract.FreeVariables , Data.Abstract.AccessControls.Class , Data.Abstract.AccessControls.Instances , Data.Abstract.Heap , Data.Abstract.Live , Data.Abstract.Module , Data.Abstract.ModuleTable , Data.Abstract.Name , Data.Abstract.Number , Data.Abstract.Package , Data.Abstract.Path , Data.Abstract.ScopeGraph , Data.Abstract.Value.Abstract , Data.Abstract.Value.Concrete , Data.Abstract.Value.Type -- General datatype definitions & generic algorithms , Data.Algebra , Data.AST , Data.Blob , Data.Blob.IO , Data.Diff , Data.Duration , Data.Edit , Data.Error , Data.Flag , Data.Functor.Classes.Generic , Data.Graph , Data.Graph.ControlFlowVertex , Data.Handle , Data.History , Data.ImportPath , Data.JSON.Fields , Data.Language , Data.Map.Monoidal , Data.Project , Data.Quieterm , Data.Semigroup.App , Data.Scientific.Exts -- À la carte syntax types , Data.Syntax , Data.Syntax.Comment , Data.Syntax.Declaration , Data.Syntax.Directive , Data.Syntax.Expression , Data.Syntax.Literal , Data.Syntax.Statement , Data.Syntax.Type , Data.Term -- Diffing algorithms & interpretation thereof , Diffing.Algorithm , Diffing.Algorithm.RWS , Diffing.Algorithm.RWS.FeatureVector , Diffing.Algorithm.SES , Diffing.Interpreter -- Language-specific grammar/syntax types, & assignments , Language.Markdown.Assignment , Language.Markdown.Syntax , Language.Markdown.Term , Language.Go.Assignment , Language.Go.Syntax , Language.Go.Term , Language.Go.Type , Language.Ruby.Assignment , Language.Ruby.Syntax , Language.Ruby.Term , Language.TSX.Assignment , Language.TSX.Syntax , Language.TSX.Syntax.JSX , Language.TSX.Term , Language.TypeScript.Assignment , Language.TypeScript.Resolution , Language.TypeScript.Syntax , Language.TypeScript.Syntax.Import , Language.TypeScript.Syntax.JavaScript , Language.TypeScript.Syntax.TypeScript , Language.TypeScript.Syntax.Types , Language.TypeScript.Term , Language.PHP.Assignment , Language.PHP.Syntax , Language.PHP.Term , Language.Python.Assignment , Language.Python.Syntax , Language.Python.Term , Numeric.Exts -- Parser glue , Parsing.CMark , Parsing.Parser , Parsing.TreeSitter -- Rendering formats , Rendering.Graph , Rendering.JSON , Rendering.TOC -- High-level flow & operational functionality (logging, stats, etc.) , Semantic.Analysis -- API , Proto.Semantic , Proto.Semantic_Fields , Proto.Semantic_JSON , Semantic.Api , Semantic.Api.Bridge , Semantic.Api.Diffs , Semantic.Api.LegacyTypes , Semantic.Api.Symbols , Semantic.Api.Terms , Semantic.Api.TOCSummaries , Semantic.CLI , Semantic.Config , Semantic.Distribute , Semantic.Env , Semantic.Graph , Semantic.IO , Semantic.Resolution , Semantic.Task , Semantic.Task.Files , Semantic.Telemetry , Semantic.Telemetry.AsyncQueue , Semantic.Telemetry.Error , Semantic.Telemetry.Log , Semantic.Telemetry.Stat , Semantic.Timeout , Semantic.Util , Semantic.Util.Pretty , Semantic.Version -- Serialization , Serializing.Format , Serializing.SExpression , Serializing.SExpression.Precise , Tags.Taggable , Tags.Tagging -- Custom Prelude , Prologue autogen-modules: Paths_semantic other-modules: Paths_semantic build-depends: base >= 4.12 && < 5 , ansi-terminal >= 0.8.2 && <1 , array ^>= 0.5.3.0 , attoparsec ^>= 0.13.2.2 , cmark-gfm == 0.1.8 , deepseq ^>= 1.4.4.0 , directory-tree ^>= 0.12.1 , filepath ^>= 1.4.2.1 , generic-monoid ^>= 0.1.0.0 , ghc-prim ^>= 0.5.3 , gitrev ^>= 1.3.1 , haskeline ^>= 0.7.5.0 , hostname ^>= 1.0 , hscolour ^>= 1.24.4 , kdt ^>= 0.2.4 , lens ^>= 4.17 , mersenne-random-pure64 ^>= 0.2.2.0 , network-uri ^>= 2.6.1.0 , optparse-applicative ^>= 0.14.3.0 , parallel ^>= 3.2.2.0 , parsers ^>= 0.12.9 , prettyprinter ^>= 1.2.1 , pretty-show ^>= 1.9.5 , profunctors ^>= 5.3 , proto-lens ^>= 0.5.1.0 , proto-lens-jsonpb , proto-lens-runtime ^>= 0.5.0.0 , reducers ^>= 3.12.3 , semantic-java ^>= 0 , semantic-json ^>= 0 , semantic-python ^>= 0 , semantic-tags ^>= 0 , semigroupoids ^>= 5.3.2 , split ^>= 0.2.3.3 , stm-chans ^>= 3.0.0.4 , template-haskell ^>= 2.14 , time ^>= 1.8.0.2 , utf8-string ^>= 1.0.1.1 , unliftio-core ^>= 0.1.2.0 , unordered-containers ^>= 0.2.9.0 , vector ^>= 0.12.0.2 , tree-sitter-go ^>= 0.2 , tree-sitter-php ^>= 0.2 , tree-sitter-python ^>= 0.6 , tree-sitter-ruby ^>= 0.2 , tree-sitter-typescript ^>= 0.2.1 , tree-sitter-tsx ^>= 0.2.1 if flag(release) cpp-options: -DCOMPUTE_GIT_SHA executable semantic import: haskell, dependencies, executable-flags hs-source-dirs: app main-is: Main.hs if flag(release) cpp-options: -DCOMPUTE_GIT_SHA build-depends: base , semantic test-suite test import: haskell, dependencies, executable-flags type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Spec.hs other-modules: Analysis.Go.Spec , Analysis.PHP.Spec , Analysis.Python.Spec , Analysis.Ruby.Spec , Analysis.TypeScript.Spec , Assigning.Assignment.Spec , Control.Abstract.Evaluator.Spec , Data.Abstract.Path.Spec , Data.Abstract.Name.Spec , Data.Diff.Spec , Data.Functor.Classes.Generic.Spec , Data.Functor.Listable , Data.Graph.Spec , Data.Mergeable , Data.Language.Spec , Data.Scientific.Spec , Data.Semigroup.App.Spec , Data.Term.Spec , Diffing.Algorithm.RWS.Spec , Diffing.Algorithm.SES.Spec , Diffing.Interpreter.Spec , Graphing.Calls.Spec , Integration.Spec , Numeric.Spec , Parsing.Spec , Rendering.TOC.Spec , Semantic.Spec , Semantic.CLI.Spec , Semantic.IO.Spec , Semantic.Stat.Spec , Tags.Spec , SpecHelpers , Test.Hspec.LeanCheck , Generators , Properties build-depends: semantic , tree-sitter-json ^>= 0.3 , Glob ^>= 0.10.0 , hedgehog ^>= 1 , hspec >= 2.6 && <3 , hspec-core >= 2.6 && <3 , hspec-expectations ^>= 0.8.2 , tasty ^>= 1.2.3 , tasty-golden ^>= 2.3.2 , tasty-hedgehog ^>= 1.0.0.1 , tasty-hspec ^>= 1.1.5.1 , tasty-hunit ^>= 0.10.0.2 , HUnit ^>= 1.6.0.0 , leancheck >= 0.8 && <1 , temporary ^>= 1.3 test-suite parse-examples import: haskell, dependencies, executable-flags type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Examples.hs build-depends: semantic , Glob , foldl ^>= 1.4.5 , resourcet ^>= 1.2 , streaming , streaming-bytestring ^>= 0.1.6 , tasty , tasty-hunit benchmark evaluation import: haskell, dependencies, executable-flags hs-source-dirs: bench type: exitcode-stdio-1.0 main-is: Main.hs other-modules: Evaluation ghc-options: -static build-depends: base , algebraic-graphs , gauge ^>= 0.2.5 , semantic , semantic-source source-repository head type: git location: https://github.com/github/semantic