1
1
mirror of https://github.com/github/semantic.git synced 2024-12-20 21:31:48 +03:00
semantic/semantic.cabal

412 lines
17 KiB
Plaintext
Raw Normal View History

2019-06-13 21:20:22 +03:00
cabal-version: 2.4
2018-02-26 21:16:56 +03:00
name: semantic
version: 0.8.0.0
2019-06-10 22:03:47 +03:00
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
2019-06-11 18:23:38 +03:00
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
2017-07-23 17:34:30 +03:00
build-type: Simple
2019-02-19 22:20:33 +03:00
stability: alpha
2019-06-11 18:25:56 +03:00
extra-source-files: README.md
2015-11-18 01:44:16 +03:00
tested-with: GHC == 8.6.4
flag release
description: Build with optimizations on (for CI or deployment builds)
default: False
2019-02-19 21:54:14 +03:00
-- GHC extensions shared between targets
common haskell
default-language: Haskell2010
default-extensions: DataKinds
, DeriveFoldable
, DeriveFunctor
, DeriveGeneric
, DeriveTraversable
, FlexibleContexts
, FlexibleInstances
, MonadFailDesugaring
, MultiParamTypeClasses
, OverloadedStrings
, RecordWildCards
, StandaloneDeriving
, StrictData
, TypeApplications
-- 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.
2019-02-19 22:20:33 +03:00
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
2019-07-06 17:52:38 +03:00
, 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
2019-09-20 01:50:31 +03:00
, pathtype ^>= 0.8.1
, process ^>= 1.6.3.0
, recursion-schemes ^>= 5.1
, scientific ^>= 0.3.6.2
, safe-exceptions ^>= 0.1.7.0
2019-09-20 21:27:59 +03:00
, semantic-source ^>= 0.0
, semilattices ^>= 0.0.0.3
, streaming ^>= 0.2.2.0
2019-10-04 19:39:13 +03:00
, streaming-bytestring ^>= 0.1.6
, text ^>= 1.2.3.1
, unix ^>= 2.7.2.2
2019-10-18 17:53:15 +03:00
, lingo ^>= 0.3.0.0
2019-02-19 22:20:33 +03:00
2019-02-19 22:31:16 +03:00
common executable-flags
ghc-options: -threaded -rtsopts "-with-rtsopts=-N -A4m -n2m"
2019-06-14 16:35:18 +03:00
common ghc-warnings
ghc-options: -Wall -Wmissing-export-lists -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wno-name-shadowing
2015-11-18 01:44:16 +03:00
library
2019-06-14 16:35:18 +03:00
import: haskell, dependencies, ghc-warnings
2015-11-18 01:44:16 +03:00
hs-source-dirs: src
exposed-modules:
2017-11-27 22:32:13 +03:00
-- 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
2018-11-02 00:49:35 +03:00
, Analysis.Decorator
, Analysis.HasTextElement
, Analysis.PackageDef
-- Semantic assignment
2017-11-27 22:32:13 +03:00
, Assigning.Assignment
, Assigning.Assignment.Table
-- Control structures & interfaces for abstract interpretation
, Control.Abstract
, Control.Abstract.Context
, Control.Abstract.Evaluator
, Control.Abstract.Heap
2018-05-28 22:09:10 +03:00
, Control.Abstract.Hole
, Control.Abstract.Modules
2018-05-18 17:11:19 +03:00
, Control.Abstract.Primitive
, Control.Abstract.PythonPackage
, Control.Abstract.Roots
2018-09-11 01:50:40 +03:00
, Control.Abstract.ScopeGraph
2018-03-02 22:45:56 +03:00
, Control.Abstract.Value
-- Carriers
, Control.Carrier.Parse.Measured
2019-09-30 23:34:21 +03:00
, Control.Carrier.Parse.Simple
-- Effects
, Control.Effect.Interpose
2019-09-30 23:25:35 +03:00
, Control.Effect.Parse
, Control.Effect.REPL
2018-09-14 19:47:21 +03:00
, Control.Rewriting
-- Datatypes for abstract interpretation
, Data.Abstract.Address.Hole
2018-08-10 20:31:55 +03:00
, Data.Abstract.Address.Monovariant
, Data.Abstract.Address.Precise
2018-08-08 02:50:55 +03:00
, Data.Abstract.BaseError
2018-04-25 22:44:44 +03:00
, Data.Abstract.Declarations
, Data.Abstract.Evaluatable
, Data.Abstract.FreeVariables
2019-01-15 23:27:09 +03:00
, Data.Abstract.AccessControls.Class
, Data.Abstract.AccessControls.Instances
2018-03-15 03:42:59 +03:00
, Data.Abstract.Heap
2017-12-01 21:57:15 +03:00
, Data.Abstract.Live
2018-03-22 00:59:16 +03:00
, Data.Abstract.Module
, Data.Abstract.ModuleTable
2018-05-18 19:43:28 +03:00
, Data.Abstract.Name
2018-03-14 17:36:56 +03:00
, Data.Abstract.Number
, Data.Abstract.Package
, Data.Abstract.Path
2018-08-29 20:47:44 +03:00
, Data.Abstract.ScopeGraph
, Data.Abstract.Value.Abstract
, Data.Abstract.Value.Concrete
, Data.Abstract.Value.Type
-- General datatype definitions & generic algorithms
, Data.Algebra
, Data.AST
2017-06-24 17:00:40 +03:00
, Data.Blob
, Data.Blob.IO
2017-09-27 19:41:41 +03:00
, Data.Diff
, Data.Duration
2019-10-18 05:43:03 +03:00
, Data.Edit
2017-08-06 19:29:28 +03:00
, Data.Error
, Data.Flag
, Data.Functor.Classes.Generic
2018-05-11 19:04:26 +03:00
, Data.Graph
2018-09-07 01:12:12 +03:00
, Data.Graph.ControlFlowVertex
, Data.Handle
, Data.History
2018-11-17 00:09:11 +03:00
, Data.ImportPath
2017-09-09 19:15:22 +03:00
, Data.JSON.Fields
2017-11-27 22:17:48 +03:00
, Data.Language
2018-03-07 20:22:52 +03:00
, Data.Map.Monoidal
, Data.Project
, Data.Quieterm
2018-03-21 23:40:56 +03:00
, Data.Semigroup.App
, Data.Scientific.Exts
-- À la carte syntax types
, Data.Syntax
2017-03-26 22:34:44 +03:00
, Data.Syntax.Comment
2017-03-27 00:31:10 +03:00
, Data.Syntax.Declaration
, Data.Syntax.Directive
, Data.Syntax.Expression
, Data.Syntax.Literal
2017-03-27 00:31:50 +03:00
, Data.Syntax.Statement
2017-03-29 23:23:02 +03:00
, Data.Syntax.Type
2017-09-27 19:37:37 +03:00
, Data.Term
-- Diffing algorithms & interpretation thereof
2017-11-27 19:41:50 +03:00
, Diffing.Algorithm
2017-11-27 19:51:39 +03:00
, Diffing.Algorithm.RWS
, Diffing.Algorithm.RWS.FeatureVector
2017-11-27 19:48:39 +03:00
, Diffing.Algorithm.SES
, Diffing.Interpreter
-- Language-specific grammar/syntax types, & assignments
2017-10-11 01:24:25 +03:00
, Language.Markdown.Assignment
, Language.Markdown.Syntax
2019-10-19 00:29:25 +03:00
, Language.Markdown.Term
2017-10-11 20:12:32 +03:00
, Language.Go.Assignment
, Language.Go.Syntax
2019-10-19 00:24:04 +03:00
, Language.Go.Term
2017-11-21 23:48:29 +03:00
, Language.Go.Type
2017-10-11 01:36:09 +03:00
, Language.Ruby.Assignment
2018-08-28 19:12:44 +03:00
, Language.Ruby.Syntax
2019-10-19 00:33:26 +03:00
, Language.Ruby.Term
, Language.TSX.Assignment
, Language.TSX.Syntax
, Language.TSX.Syntax.JSX
2019-10-18 23:04:04 +03:00
, Language.TSX.Term
2017-10-11 01:55:42 +03:00
, Language.TypeScript.Assignment
2018-07-20 00:05:44 +03:00
, Language.TypeScript.Resolution
, Language.TypeScript.Syntax
2018-10-18 20:50:07 +03:00
, Language.TypeScript.Syntax.Import
, Language.TypeScript.Syntax.JavaScript
, Language.TypeScript.Syntax.TypeScript
2018-10-18 20:50:07 +03:00
, Language.TypeScript.Syntax.Types
2019-10-18 23:57:37 +03:00
, Language.TypeScript.Term
2017-12-15 22:14:08 +03:00
, Language.PHP.Assignment
, Language.PHP.Syntax
2019-10-19 00:12:02 +03:00
, Language.PHP.Term
2017-10-11 01:26:29 +03:00
, Language.Python.Assignment
2017-05-12 02:45:05 +03:00
, Language.Python.Syntax
2019-10-19 00:19:52 +03:00
, Language.Python.Term
, Numeric.Exts
-- Parser glue
2017-11-27 21:24:45 +03:00
, Parsing.CMark
, Parsing.Parser
2017-11-27 21:24:45 +03:00
, Parsing.TreeSitter
-- Rendering formats
, Rendering.Graph
2017-11-27 21:30:38 +03:00
, 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
2019-03-01 23:27:13 +03:00
, Semantic.Api.Bridge
2019-04-12 21:40:03 +03:00
, Semantic.Api.Diffs
, Semantic.Api.LegacyTypes
, Semantic.Api.Symbols
, Semantic.Api.Terms
, Semantic.Api.TOCSummaries
, Semantic.CLI
2018-06-08 20:48:38 +03:00
, Semantic.Config
2018-04-04 18:23:21 +03:00
, Semantic.Distribute
2018-06-07 02:17:44 +03:00
, Semantic.Env
2019-04-12 21:40:03 +03:00
, Semantic.Git
2018-04-09 20:57:12 +03:00
, Semantic.Graph
2017-11-27 21:09:03 +03:00
, Semantic.IO
, Semantic.Resolution
2017-05-29 20:11:17 +03:00
, Semantic.Task
, Semantic.Task.Files
, Semantic.Telemetry
2018-06-14 02:39:13 +03:00
, Semantic.Telemetry.AsyncQueue
, Semantic.Telemetry.Error
2018-06-14 02:39:13 +03:00
, Semantic.Telemetry.Log
, Semantic.Telemetry.Stat
2018-09-14 00:20:42 +03:00
, Semantic.Timeout
, Semantic.Util
, Semantic.Util.Pretty
, Semantic.Version
-- Serialization
, Serializing.Format
, Serializing.SExpression
, Serializing.SExpression.Precise
2018-10-31 18:34:38 +03:00
, Tags.Taggable
, Tags.Tagging
-- Custom Prelude
2018-05-23 21:04:15 +03:00
, Prologue
2019-06-10 22:03:47 +03:00
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
2019-09-20 19:26:49 +03:00
, 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
2019-10-02 23:14:16 +03:00
, proto-lens-jsonpb
, proto-lens-runtime ^>= 0.5.0.0
, reducers ^>= 3.12.3
2019-09-28 01:35:50 +03:00
, semantic-java ^>= 0
2019-10-07 17:28:12 +03:00
, semantic-json ^>= 0
, semantic-python ^>= 0
2019-09-27 17:53:16 +03:00
, semantic-tags ^>= 0
, semigroupoids ^>= 5.3.2
, split ^>= 0.2.3.3
, streaming-attoparsec ^>= 1.0.0.1
2019-10-04 19:39:13 +03:00
, streaming-process ^>= 0.1
, 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)
2019-02-11 23:08:24 +03:00
cpp-options: -DCOMPUTE_GIT_SHA
2015-11-18 01:44:16 +03:00
2017-04-03 19:28:53 +03:00
executable semantic
2019-02-19 22:31:16 +03:00
import: haskell, dependencies, executable-flags
2016-10-06 02:17:46 +03:00
hs-source-dirs: app
main-is: Main.hs
if flag(release)
cpp-options: -DCOMPUTE_GIT_SHA
2016-10-06 02:17:46 +03:00
build-depends: base
2018-02-26 21:16:56 +03:00
, semantic
2016-10-06 02:17:46 +03:00
2016-09-15 00:12:06 +03:00
test-suite test
2019-06-14 16:35:18 +03:00
import: haskell, dependencies, executable-flags, ghc-warnings
2015-11-18 01:44:16 +03:00
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
2018-05-07 21:20:56 +03:00
other-modules: Analysis.Go.Spec
, Analysis.PHP.Spec
, Analysis.Python.Spec
2018-03-14 02:19:26 +03:00
, Analysis.Ruby.Spec
2018-03-10 02:54:52 +03:00
, Analysis.TypeScript.Spec
2018-05-07 21:20:56 +03:00
, Assigning.Assignment.Spec
2018-05-07 21:21:05 +03:00
, Control.Abstract.Evaluator.Spec
, Data.Abstract.Path.Spec
2018-10-31 20:19:43 +03:00
, Data.Abstract.Name.Spec
2018-07-20 16:52:43 +03:00
, Data.Diff.Spec
, Data.Functor.Classes.Generic.Spec
, Data.Functor.Listable
2018-10-31 19:20:38 +03:00
, Data.Graph.Spec
2018-07-20 16:52:43 +03:00
, Data.Mergeable
2019-08-16 01:48:17 +03:00
, Data.Language.Spec
, Data.Scientific.Spec
2018-10-31 22:47:30 +03:00
, Data.Semigroup.App.Spec
2017-11-27 22:02:03 +03:00
, Data.Term.Spec
2017-11-27 21:48:43 +03:00
, Diffing.Algorithm.RWS.Spec
2017-11-27 21:51:05 +03:00
, Diffing.Algorithm.SES.Spec
2017-11-27 22:03:45 +03:00
, Diffing.Interpreter.Spec
2018-07-16 18:07:40 +03:00
, Graphing.Calls.Spec
2017-11-27 22:06:12 +03:00
, Integration.Spec
, Numeric.Spec
, Parsing.Spec
2017-11-27 22:04:58 +03:00
, Rendering.TOC.Spec
2017-11-27 22:00:53 +03:00
, Semantic.Spec
2017-11-27 21:57:25 +03:00
, Semantic.CLI.Spec
2017-11-27 21:52:48 +03:00
, Semantic.IO.Spec
2017-11-27 21:58:23 +03:00
, Semantic.Stat.Spec
2018-11-02 23:55:30 +03:00
, Tags.Spec
, SpecHelpers
, Test.Hspec.LeanCheck
, Generators
, Properties
2019-02-19 22:20:33 +03:00
build-depends: semantic
, tree-sitter-json ^>= 0.3
2019-06-12 19:37:40 +03:00
, Glob ^>= 0.10.0
, hedgehog ^>= 1
, hspec >= 2.6 && <3
, hspec-core >= 2.6 && <3
, hspec-expectations ^>= 0.8.2
, shelly >= 1.5 && <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
2019-06-12 19:37:40 +03:00
, temporary ^>= 1.3
if flag(release)
2019-02-19 22:31:16 +03:00
ghc-options: -dynamic
2015-11-18 01:44:16 +03:00
test-suite parse-examples
import: haskell, dependencies, executable-flags
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Examples.hs
2019-02-19 22:20:33 +03:00
build-depends: semantic
2019-04-12 22:54:12 +03:00
, Glob
, foldl ^>= 1.4.5
, resourcet ^>= 1.2
, streaming
2019-10-04 19:39:13 +03:00
, streaming-bytestring
, tasty
, tasty-hunit
2018-03-08 03:34:20 +03:00
benchmark evaluation
import: haskell, dependencies, executable-flags
2019-10-04 19:39:13 +03:00
hs-source-dirs: bench
2018-05-21 18:17:11 +03:00
type: exitcode-stdio-1.0
main-is: Main.hs
2019-10-04 19:39:13 +03:00
other-modules: Evaluation
2019-06-10 22:03:47 +03:00
ghc-options: -static
2018-05-21 18:17:11 +03:00
build-depends: base
, algebraic-graphs
, gauge ^>= 0.2.5
2018-05-21 18:17:11 +03:00
, semantic
, semantic-source
2018-03-08 03:34:20 +03:00
2015-11-18 01:44:16 +03:00
source-repository head
type: git
2018-02-26 21:16:56 +03:00
location: https://github.com/github/semantic