2019-06-13 21:20:22 +03:00
|
|
|
cabal-version: 2.4
|
2019-06-11 18:25:11 +03:00
|
|
|
|
2018-02-26 21:16:56 +03:00
|
|
|
name: semantic
|
2019-07-31 19:45:17 +03:00
|
|
|
version: 0.7.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.
|
2019-06-03 19:39:04 +03:00
|
|
|
homepage: http://github.com/github/semantic#readme
|
2019-06-11 18:23:38 +03:00
|
|
|
bug-reports: https://github.com/github/semantic/issues
|
2019-03-21 15:52:18 +03:00
|
|
|
license: MIT
|
|
|
|
license-file: LICENSE
|
2019-06-11 18:25:11 +03:00
|
|
|
author: The Semantic authors
|
|
|
|
maintainer: opensource+semantic@github.com
|
2019-06-11 18:12:58 +03:00
|
|
|
copyright: (c) 2015-2019 GitHub, Inc.
|
2019-06-11 18:25:34 +03:00
|
|
|
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
|
|
|
|
2019-04-03 16:12:49 +03:00
|
|
|
tested-with: GHC == 8.6.4
|
|
|
|
|
2018-05-23 00:18:03 +03:00
|
|
|
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
|
|
|
|
|
2019-04-03 16:12:49 +03:00
|
|
|
-- 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
|
2019-06-05 17:38:51 +03:00
|
|
|
build-depends: base >= 4.12 && < 5
|
2019-04-03 16:12:49 +03:00
|
|
|
, 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
|
2019-06-11 18:00:17 +03:00
|
|
|
, fastsum ^>= 0.1.1.0
|
2019-04-03 16:12:49 +03:00
|
|
|
, filepath ^>= 1.4.2.1
|
|
|
|
, free ^>= 5.1
|
2019-07-06 17:52:38 +03:00
|
|
|
, fused-effects ^>= 0.5.0.0
|
|
|
|
, fused-effects-exceptions ^>= 0.2.0.0
|
2019-04-03 16:12:49 +03:00
|
|
|
, hashable ^>= 1.2.7.0
|
2019-06-10 20:29:02 +03:00
|
|
|
, tree-sitter ^>= 0.1.0.0
|
2019-04-03 16:12:49 +03:00
|
|
|
, mtl ^>= 2.2.2
|
|
|
|
, network ^>= 2.8.0.0
|
2019-06-11 18:00:17 +03:00
|
|
|
, process ^>= 1.6.3.0
|
2019-04-03 16:12:49 +03:00
|
|
|
, recursion-schemes ^>= 5.1
|
|
|
|
, scientific ^>= 0.3.6.2
|
2019-06-11 18:00:17 +03:00
|
|
|
, safe-exceptions ^>= 0.1.7.0
|
|
|
|
, semilattices ^>= 0.0.0.3
|
2019-06-19 19:09:37 +03:00
|
|
|
, shelly >= 1.5 && <2
|
2019-06-20 09:29:43 +03:00
|
|
|
, streaming ^>= 0.2.2.0
|
2019-04-03 16:12:49 +03:00
|
|
|
, text ^>= 1.2.3.1
|
|
|
|
, these >= 0.7 && <1
|
|
|
|
, unix ^>= 2.7.2.2
|
2019-02-19 22:20:33 +03:00
|
|
|
, proto3-suite
|
|
|
|
, proto3-wire
|
2019-07-30 22:26:51 +03:00
|
|
|
, lingo
|
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
|
2017-11-27 22:28:28 +03:00
|
|
|
exposed-modules:
|
2017-11-27 22:32:13 +03:00
|
|
|
-- Analyses & term annotations
|
2018-09-18 17:27:47 +03:00
|
|
|
Analysis.Abstract.Caching.FlowInsensitive
|
|
|
|
, Analysis.Abstract.Caching.FlowSensitive
|
2017-12-01 03:35:35 +03:00
|
|
|
, Analysis.Abstract.Collecting
|
2017-12-01 02:49:19 +03:00
|
|
|
, Analysis.Abstract.Dead
|
2018-05-02 01:10:25 +03:00
|
|
|
, Analysis.Abstract.Graph
|
2017-12-01 02:57:56 +03:00
|
|
|
, Analysis.Abstract.Tracing
|
2017-12-01 01:16:26 +03:00
|
|
|
, Analysis.ConstructorName
|
2017-11-27 22:52:27 +03:00
|
|
|
, Analysis.CyclomaticComplexity
|
2018-11-08 19:33:26 +03:00
|
|
|
, Analysis.TOCSummary
|
2018-11-02 00:49:35 +03:00
|
|
|
, Analysis.Decorator
|
|
|
|
, Analysis.HasTextElement
|
2018-03-26 22:02:27 +03:00
|
|
|
, Analysis.PackageDef
|
2017-11-27 22:28:28 +03:00
|
|
|
-- Semantic assignment
|
2017-11-27 22:32:13 +03:00
|
|
|
, Assigning.Assignment
|
2018-06-27 21:27:15 +03:00
|
|
|
, Assigning.Assignment.Deterministic
|
2017-11-27 21:19:20 +03:00
|
|
|
, Assigning.Assignment.Table
|
2018-03-01 19:46:32 +03:00
|
|
|
-- Control structures & interfaces for abstract interpretation
|
2018-05-07 18:51:56 +03:00
|
|
|
, Control.Abstract
|
2018-05-07 19:14:14 +03:00
|
|
|
, Control.Abstract.Context
|
2018-03-01 19:46:32 +03:00
|
|
|
, Control.Abstract.Evaluator
|
2018-05-07 18:49:59 +03:00
|
|
|
, Control.Abstract.Heap
|
2018-05-28 22:09:10 +03:00
|
|
|
, Control.Abstract.Hole
|
2018-05-08 23:59:25 +03:00
|
|
|
, Control.Abstract.Modules
|
2018-05-18 17:11:19 +03:00
|
|
|
, Control.Abstract.Primitive
|
2018-08-02 01:18:33 +03:00
|
|
|
, Control.Abstract.PythonPackage
|
2018-05-07 18:58:30 +03:00
|
|
|
, 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
|
2018-10-29 16:52:48 +03:00
|
|
|
-- Effects
|
|
|
|
, Control.Effect.Interpose
|
2018-10-30 21:55:23 +03:00
|
|
|
, Control.Effect.REPL
|
2018-09-14 19:47:21 +03:00
|
|
|
, Control.Rewriting
|
2018-03-01 19:47:21 +03:00
|
|
|
-- Datatypes for abstract interpretation
|
2018-08-13 16:35:37 +03:00
|
|
|
, 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
|
2018-03-01 19:54:05 +03:00
|
|
|
, Data.Abstract.Evaluatable
|
2017-12-01 02:02:14 +03:00
|
|
|
, 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
|
2018-03-06 22:17:32 +03:00
|
|
|
, 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
|
2018-03-30 18:34:42 +03:00
|
|
|
, Data.Abstract.Package
|
2018-03-16 19:27:08 +03:00
|
|
|
, Data.Abstract.Path
|
2018-08-29 20:47:44 +03:00
|
|
|
, Data.Abstract.ScopeGraph
|
2018-07-04 16:21:51 +03:00
|
|
|
, Data.Abstract.Value.Abstract
|
2018-07-03 21:22:26 +03:00
|
|
|
, Data.Abstract.Value.Concrete
|
2018-07-04 17:46:13 +03:00
|
|
|
, Data.Abstract.Value.Type
|
2018-03-01 19:47:21 +03:00
|
|
|
-- General datatype definitions & generic algorithms
|
2017-11-27 22:36:20 +03:00
|
|
|
, Data.Algebra
|
2017-11-27 21:45:37 +03:00
|
|
|
, Data.AST
|
2017-06-24 17:00:40 +03:00
|
|
|
, Data.Blob
|
2019-05-22 05:05:23 +03:00
|
|
|
, Data.Blob.IO
|
2017-09-27 19:41:41 +03:00
|
|
|
, Data.Diff
|
2018-09-14 00:51:32 +03:00
|
|
|
, Data.Duration
|
2017-08-06 19:29:28 +03:00
|
|
|
, Data.Error
|
2019-03-22 23:25:04 +03:00
|
|
|
, Data.Flag
|
2016-02-29 05:29:59 +03:00
|
|
|
, Data.Functor.Both
|
2017-11-30 18:14:21 +03:00
|
|
|
, 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
|
2018-10-23 22:28:21 +03:00
|
|
|
, Data.Handle
|
2018-08-02 20:03:55 +03:00
|
|
|
, 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-09-21 23:46:25 +03:00
|
|
|
, Data.Location
|
2018-03-07 20:22:52 +03:00
|
|
|
, Data.Map.Monoidal
|
2017-09-27 19:29:07 +03:00
|
|
|
, Data.Patch
|
2018-05-16 18:38:00 +03:00
|
|
|
, Data.Project
|
2018-08-01 22:06:26 +03:00
|
|
|
, Data.Quieterm
|
2017-06-24 16:46:28 +03:00
|
|
|
, Data.Range
|
2018-08-22 21:30:03 +03:00
|
|
|
, Data.Reprinting.Errors
|
2018-09-18 18:38:10 +03:00
|
|
|
, Data.Reprinting.Fragment
|
2018-09-19 18:54:12 +03:00
|
|
|
, Data.Reprinting.Operator
|
|
|
|
, Data.Reprinting.Scope
|
2018-08-17 19:10:14 +03:00
|
|
|
, Data.Reprinting.Splice
|
2018-09-19 18:54:12 +03:00
|
|
|
, Data.Reprinting.Token
|
2018-03-21 23:40:56 +03:00
|
|
|
, Data.Semigroup.App
|
2018-04-04 00:02:56 +03:00
|
|
|
, Data.Scientific.Exts
|
2017-06-24 16:59:41 +03:00
|
|
|
, Data.Source
|
2017-06-24 16:41:51 +03:00
|
|
|
, Data.Span
|
2017-11-27 22:28:28 +03:00
|
|
|
-- À la carte syntax types
|
2017-03-26 19:02:40 +03:00
|
|
|
, Data.Syntax
|
2017-03-26 22:34:44 +03:00
|
|
|
, Data.Syntax.Comment
|
2017-03-27 00:31:10 +03:00
|
|
|
, Data.Syntax.Declaration
|
2018-04-26 23:43:49 +03:00
|
|
|
, Data.Syntax.Directive
|
2017-03-29 22:47:12 +03:00
|
|
|
, Data.Syntax.Expression
|
2017-03-26 22:30:33 +03:00
|
|
|
, 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
|
2019-02-08 20:05:59 +03:00
|
|
|
, Data.Tag
|
2017-09-27 19:37:37 +03:00
|
|
|
, Data.Term
|
2017-11-27 22:28:28 +03:00
|
|
|
-- 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
|
2017-11-27 19:45:08 +03:00
|
|
|
, Diffing.Interpreter
|
2017-11-27 22:28:28 +03:00
|
|
|
-- Language-specific grammar/syntax types, & assignments
|
2017-10-11 01:24:25 +03:00
|
|
|
, Language.Markdown.Assignment
|
2017-06-07 23:18:49 +03:00
|
|
|
, Language.Markdown.Syntax
|
2017-10-11 20:12:32 +03:00
|
|
|
, Language.Go.Assignment
|
2017-04-12 17:53:04 +03:00
|
|
|
, Language.Go.Syntax
|
2017-11-21 23:48:29 +03:00
|
|
|
, Language.Go.Type
|
2018-05-23 21:32:15 +03:00
|
|
|
, Language.Haskell.Assignment
|
|
|
|
, Language.Haskell.Syntax
|
2018-10-18 01:53:59 +03:00
|
|
|
, Language.Haskell.Syntax.Constructor
|
|
|
|
, Language.Haskell.Syntax.Haskell
|
|
|
|
, Language.Haskell.Syntax.Identifier
|
|
|
|
, Language.Haskell.Syntax.Pattern
|
|
|
|
, Language.Haskell.Syntax.QuasiQuote
|
|
|
|
, Language.Haskell.Syntax.Type
|
2017-10-11 01:14:57 +03:00
|
|
|
, Language.JSON.Assignment
|
2018-08-22 02:15:08 +03:00
|
|
|
, Language.JSON.PrettyPrint
|
2017-10-11 01:36:09 +03:00
|
|
|
, Language.Ruby.Assignment
|
2018-08-22 02:15:08 +03:00
|
|
|
, Language.Ruby.PrettyPrint
|
2018-08-28 19:12:44 +03:00
|
|
|
, Language.Ruby.Syntax
|
2019-06-06 23:37:29 +03:00
|
|
|
, Language.TSX.Assignment
|
|
|
|
, Language.TSX.Syntax
|
|
|
|
, Language.TSX.Syntax.JSX
|
2017-10-11 01:55:42 +03:00
|
|
|
, Language.TypeScript.Assignment
|
2018-07-20 00:05:44 +03:00
|
|
|
, Language.TypeScript.Resolution
|
2017-04-12 17:51:31 +03:00
|
|
|
, Language.TypeScript.Syntax
|
2018-10-18 20:50:07 +03:00
|
|
|
, Language.TypeScript.Syntax.Import
|
2018-07-20 00:23:44 +03:00
|
|
|
, Language.TypeScript.Syntax.JavaScript
|
|
|
|
, Language.TypeScript.Syntax.TypeScript
|
2018-10-18 20:50:07 +03:00
|
|
|
, Language.TypeScript.Syntax.Types
|
2017-12-15 22:14:08 +03:00
|
|
|
, Language.PHP.Assignment
|
|
|
|
, Language.PHP.Syntax
|
2017-10-11 01:26:29 +03:00
|
|
|
, Language.Python.Assignment
|
2018-08-28 19:14:48 +03:00
|
|
|
, Language.Python.PrettyPrint
|
2017-05-12 02:45:05 +03:00
|
|
|
, Language.Python.Syntax
|
2018-03-16 00:57:06 +03:00
|
|
|
, Language.Java.Assignment
|
|
|
|
, Language.Java.Syntax
|
2018-06-25 18:55:32 +03:00
|
|
|
, Numeric.Exts
|
2017-11-27 22:28:28 +03:00
|
|
|
-- Parser glue
|
2017-11-27 21:24:45 +03:00
|
|
|
, Parsing.CMark
|
2017-11-27 22:28:28 +03:00
|
|
|
, Parsing.Parser
|
2017-11-27 21:24:45 +03:00
|
|
|
, Parsing.TreeSitter
|
2017-11-27 22:28:28 +03:00
|
|
|
-- Rendering formats
|
2018-05-11 19:57:20 +03:00
|
|
|
, Rendering.Graph
|
2017-11-27 21:30:38 +03:00
|
|
|
, Rendering.JSON
|
|
|
|
, Rendering.TOC
|
2018-08-03 20:15:14 +03:00
|
|
|
, Reprinting.Tokenize
|
2018-08-03 19:23:47 +03:00
|
|
|
, Reprinting.Translate
|
2018-08-03 19:47:54 +03:00
|
|
|
, Reprinting.Typeset
|
2018-07-31 19:44:20 +03:00
|
|
|
, Reprinting.Pipeline
|
2017-11-27 22:28:28 +03:00
|
|
|
-- High-level flow & operational functionality (logging, stats, etc.)
|
2018-10-26 04:31:38 +03:00
|
|
|
, Semantic.Analysis
|
2019-01-18 01:00:13 +03:00
|
|
|
-- API
|
2019-02-20 22:23:18 +03:00
|
|
|
, Semantic.Api
|
2019-03-01 23:27:13 +03:00
|
|
|
, Semantic.Api.Bridge
|
2019-04-12 21:40:03 +03:00
|
|
|
, Semantic.Api.Diffs
|
2019-02-20 22:23:18 +03:00
|
|
|
, Semantic.Api.LegacyTypes
|
|
|
|
, Semantic.Api.Symbols
|
|
|
|
, Semantic.Api.Terms
|
|
|
|
, Semantic.Api.TOCSummaries
|
2019-07-06 01:11:33 +03:00
|
|
|
, Semantic.Proto.SemanticPB
|
2018-05-14 21:57:19 +03:00
|
|
|
, Semantic.AST
|
2017-11-27 19:57:27 +03:00
|
|
|
, 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
|
2018-08-01 17:54:57 +03:00
|
|
|
, Semantic.REPL
|
2018-05-04 02:14:54 +03:00
|
|
|
, Semantic.Resolution
|
2017-05-29 20:11:17 +03:00
|
|
|
, Semantic.Task
|
2018-10-23 22:28:21 +03:00
|
|
|
, Semantic.Task.Files
|
2018-04-04 18:23:32 +03:00
|
|
|
, Semantic.Telemetry
|
2018-06-14 02:39:13 +03:00
|
|
|
, Semantic.Telemetry.AsyncQueue
|
2019-04-03 22:12:36 +03:00
|
|
|
, 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
|
2017-08-28 19:48:36 +03:00
|
|
|
, Semantic.Util
|
2018-10-04 21:38:36 +03:00
|
|
|
, Semantic.Util.Pretty
|
2018-06-14 02:39:01 +03:00
|
|
|
, Semantic.Version
|
2018-05-11 20:27:09 +03:00
|
|
|
-- Serialization
|
|
|
|
, Serializing.Format
|
2018-05-11 21:41:10 +03:00
|
|
|
, Serializing.SExpression
|
2019-06-19 20:24:12 +03:00
|
|
|
, Serializing.SExpression.Precise
|
2018-10-31 18:34:38 +03:00
|
|
|
, Tags.Taggable
|
2018-10-31 20:58:00 +03:00
|
|
|
, Tags.Tagging
|
2018-05-11 20:27:09 +03:00
|
|
|
-- 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
|
2019-06-05 17:38:51 +03:00
|
|
|
build-depends: base >= 4.12 && < 5
|
2019-06-12 18:30:20 +03:00
|
|
|
, ansi-terminal >= 0.8.2 && <1
|
2019-04-03 16:12:49 +03:00
|
|
|
, array ^>= 0.5.3.0
|
|
|
|
, attoparsec ^>= 0.13.2.2
|
|
|
|
, cmark-gfm == 0.1.8
|
|
|
|
, cryptohash ^>= 0.11.9
|
|
|
|
, deepseq ^>= 1.4.4.0
|
|
|
|
, directory-tree ^>= 0.12.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
|
|
|
|
, http-client ^>= 0.6.2
|
|
|
|
, http-client-tls ^>= 0.3.5.3
|
|
|
|
, http-types ^>= 0.12.3
|
|
|
|
, http-media ^>= 0.7.1.3
|
|
|
|
, 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
|
|
|
|
, reducers ^>= 3.12.3
|
|
|
|
, semigroupoids ^>= 5.3.2
|
|
|
|
, split ^>= 0.2.3.3
|
|
|
|
, stm-chans ^>= 3.0.0.4
|
|
|
|
, template-haskell ^>= 2.14
|
|
|
|
, time ^>= 1.8.0.2
|
2019-06-11 18:00:17 +03:00
|
|
|
, unliftio-core ^>= 0.1.2.0
|
2019-04-03 16:12:49 +03:00
|
|
|
, unordered-containers ^>= 0.2.9.0
|
|
|
|
, vector ^>= 0.12.0.2
|
2019-06-10 20:29:02 +03:00
|
|
|
, tree-sitter-go ^>= 0.1.0.0
|
2019-06-11 18:00:17 +03:00
|
|
|
, tree-sitter-haskell ^>= 0.1.0.0
|
2019-06-10 20:29:02 +03:00
|
|
|
, tree-sitter-json ^>= 0.1.0.0
|
|
|
|
, tree-sitter-php ^>= 0.1.0.0
|
|
|
|
, tree-sitter-python ^>= 0.1.0.1
|
|
|
|
, tree-sitter-ruby ^>= 0.1.0.0
|
|
|
|
, tree-sitter-typescript ^>= 0.1.0.0
|
|
|
|
, tree-sitter-tsx ^>= 0.1.0.0
|
|
|
|
, tree-sitter-java ^>= 0.1.0.0
|
2018-05-23 00:18:03 +03:00
|
|
|
if flag(release)
|
2019-02-11 23:08:24 +03:00
|
|
|
cpp-options: -DCOMPUTE_GIT_SHA
|
2018-05-23 00:18:03 +03:00
|
|
|
else
|
2019-06-10 22:03:47 +03:00
|
|
|
ghc-options: +RTS -A128m -n2m -RTS
|
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
|
2018-05-23 00:18:03 +03:00
|
|
|
if flag(release)
|
2019-02-21 20:22:08 +03:00
|
|
|
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
|
2018-03-20 00:42:00 +03:00
|
|
|
, Analysis.PHP.Spec
|
2018-03-10 02:16:07 +03:00
|
|
|
, 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
|
2018-04-18 00:13:01 +03:00
|
|
|
, 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
|
2017-11-30 18:24:48 +03:00
|
|
|
, Data.Functor.Classes.Generic.Spec
|
2017-09-09 16:44:57 +03:00
|
|
|
, 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
|
2018-10-31 19:46:52 +03:00
|
|
|
, Data.Range.Spec
|
2018-04-04 00:02:56 +03:00
|
|
|
, Data.Scientific.Spec
|
2018-10-31 22:47:30 +03:00
|
|
|
, Data.Semigroup.App.Spec
|
2017-11-27 21:49:52 +03:00
|
|
|
, Data.Source.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
|
2018-06-25 18:55:32 +03:00
|
|
|
, Numeric.Spec
|
2019-03-19 20:13:03 +03:00
|
|
|
, Parsing.Spec
|
2018-07-31 17:43:46 +03:00
|
|
|
, Reprinting.Spec
|
2018-12-12 01:21:39 +03:00
|
|
|
, Rewriting.Go.Spec
|
2018-12-12 01:36:42 +03:00
|
|
|
, Rewriting.JSON.Spec
|
2018-12-13 20:04:06 +03:00
|
|
|
, Rewriting.Python.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
|
2017-04-19 19:12:19 +03:00
|
|
|
, SpecHelpers
|
2017-01-06 00:41:23 +03:00
|
|
|
, Test.Hspec.LeanCheck
|
2019-06-13 21:12:40 +03:00
|
|
|
, Generators
|
2019-02-19 22:20:33 +03:00
|
|
|
build-depends: semantic
|
2019-03-19 20:13:03 +03:00
|
|
|
, tree-sitter-json
|
2019-06-12 19:37:40 +03:00
|
|
|
, Glob ^>= 0.10.0
|
2019-06-13 21:12:40 +03:00
|
|
|
, hedgehog ^>= 1
|
2019-04-03 16:12:49 +03:00
|
|
|
, hspec >= 2.6 && <3
|
|
|
|
, hspec-core >= 2.6 && <3
|
2019-06-12 18:30:20 +03:00
|
|
|
, hspec-expectations ^>= 0.8.2
|
|
|
|
, tasty ^>= 1.2.3
|
|
|
|
, tasty-golden ^>= 2.3.2
|
2019-06-13 21:12:40 +03:00
|
|
|
, tasty-hedgehog ^>= 1.0.0.1
|
2019-06-12 18:30:20 +03:00
|
|
|
, tasty-hspec ^>= 1.1.5.1
|
2019-06-20 00:54:53 +03:00
|
|
|
, tasty-hunit ^>= 0.10.0.2
|
2019-04-03 16:12:49 +03:00
|
|
|
, HUnit ^>= 1.6.0.0
|
|
|
|
, leancheck >= 0.8 && <1
|
2019-06-12 19:37:40 +03:00
|
|
|
, temporary ^>= 1.3
|
2018-12-05 19:28:21 +03:00
|
|
|
if flag(release)
|
2019-02-19 22:31:16 +03:00
|
|
|
ghc-options: -dynamic
|
2015-11-18 01:44:16 +03:00
|
|
|
|
2018-09-18 01:49:18 +03:00
|
|
|
test-suite parse-examples
|
2019-05-24 19:09:48 +03:00
|
|
|
import: haskell, dependencies, executable-flags
|
2018-09-18 01:49:18 +03:00
|
|
|
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
|
2019-06-12 19:37:40 +03:00
|
|
|
, hspec
|
2018-09-18 01:49:18 +03:00
|
|
|
, hspec-core
|
2019-06-12 18:30:20 +03:00
|
|
|
, hspec-expectations
|
2018-09-18 01:49:18 +03:00
|
|
|
|
2018-03-08 03:34:20 +03:00
|
|
|
benchmark evaluation
|
2019-02-19 22:31:16 +03:00
|
|
|
import: haskell, executable-flags
|
Add NFData instances to enable more accurate benchmarking.
Because we're getting serious about benchmarking in the run-up to
Windrose, it's time to bring in the `deepseq` package to ensure that
benchmarks can fully evaluate the result of a test case.
The `deepseq` package provides an `NFData` typeclass:
```
class NFData a where
rnf :: a -> ()
```
Instances use the `seq` combinator to ensure that the argument to
`rnf` is fully evaluated, returning (). If there is a `Generic`
instance for `a`, the implementation can be omitted. This patch adds
NFData for every syntax node, graph vertex, environment data
structures, and exceptions. It is long, but the work is very
straightforward, so don't panick.
The benchmark suite (`stack bench`) now produces more accurate
results. The benchmarks previously mimicked `rnf` by calling `show` on
the result of an evaluation or graph construction; now that we have
actual `NFData` instances we can use the `nfIO` combinator from
criterion. This has sped up the evaluation benchmarks and reduced
their memory consumption, while it has slowed down the call graph
benchmarks, as those benchmarks weren't evaluating the whole of the
graph.
Unfortunately, this patch increases compile times, as we have to
derive a few more Generic instances. I wish this weren't the case, but
there's little we can do about it now. In the future I have some plans
for how to reduce compile time, and I bet that those gains will at
least nullify the speed hit from this patch.
Now that we have NFData instances for every data type, we can start
benchmarking assignments, in preparation for fixing #2205.
This patch also pulls in updates to `effects` and `fastsum` that add
appropriate NFData instances for the data they vend.
2018-10-17 21:08:47 +03:00
|
|
|
hs-source-dirs: bench/evaluation
|
2018-05-21 18:17:11 +03:00
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
main-is: Main.hs
|
2019-06-10 22:03:47 +03:00
|
|
|
ghc-options: -static
|
2018-05-21 18:17:11 +03:00
|
|
|
build-depends: base
|
2019-06-12 19:37:40 +03:00
|
|
|
, criterion ^>= 1.5
|
2018-05-21 18:17:11 +03:00
|
|
|
, semantic
|
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
|