2019-09-07 18:06:25 +03:00
|
|
|
cabal-version: 1.20
|
2019-05-20 18:36:08 +03:00
|
|
|
build-type: Simple
|
2019-09-07 18:06:25 +03:00
|
|
|
category: Development
|
2019-09-09 16:55:16 +03:00
|
|
|
name: ghcide
|
2020-11-07 22:58:13 +03:00
|
|
|
version: 0.5.0
|
2019-09-07 18:06:25 +03:00
|
|
|
license: Apache-2.0
|
|
|
|
license-file: LICENSE
|
2020-09-02 19:34:28 +03:00
|
|
|
author: Digital Asset and Ghcide contributors
|
|
|
|
maintainer: Ghcide contributors
|
|
|
|
copyright: Digital Asset and Ghcide contributors 2018-2020
|
2019-05-20 18:36:08 +03:00
|
|
|
synopsis: The core of an IDE
|
|
|
|
description:
|
|
|
|
A library for building Haskell IDE's on top of the GHC API.
|
2020-09-02 19:34:28 +03:00
|
|
|
homepage: https://github.com/haskell/ghcide#readme
|
|
|
|
bug-reports: https://github.com/haskell/ghcide/issues
|
2020-11-07 22:58:13 +03:00
|
|
|
tested-with: GHC>=8.6.5
|
2019-09-23 15:54:06 +03:00
|
|
|
extra-source-files: include/ghc-api-version.h README.md CHANGELOG.md
|
2020-06-02 15:44:16 +03:00
|
|
|
test/data/hover/*.hs
|
|
|
|
test/data/multi/cabal.project
|
|
|
|
test/data/multi/hie.yaml
|
|
|
|
test/data/multi/a/a.cabal
|
|
|
|
test/data/multi/a/*.hs
|
|
|
|
test/data/multi/b/b.cabal
|
|
|
|
test/data/multi/b/*.hs
|
2019-05-20 18:36:08 +03:00
|
|
|
|
|
|
|
source-repository head
|
|
|
|
type: git
|
2020-09-02 19:34:28 +03:00
|
|
|
location: https://github.com/haskell/ghcide.git
|
2019-05-20 18:36:08 +03:00
|
|
|
|
2019-09-16 12:31:09 +03:00
|
|
|
flag ghc-lib
|
|
|
|
description: build against ghc-lib instead of the ghc package
|
|
|
|
default: False
|
|
|
|
manual: True
|
|
|
|
|
2019-05-20 18:36:08 +03:00
|
|
|
library
|
|
|
|
default-language: Haskell2010
|
|
|
|
build-depends:
|
|
|
|
aeson,
|
2020-03-24 14:39:53 +03:00
|
|
|
array,
|
2019-06-14 15:26:25 +03:00
|
|
|
async,
|
2019-05-20 18:36:08 +03:00
|
|
|
base == 4.*,
|
|
|
|
binary,
|
|
|
|
bytestring,
|
|
|
|
containers,
|
2019-06-14 15:26:25 +03:00
|
|
|
data-default,
|
2019-05-20 18:36:08 +03:00
|
|
|
deepseq,
|
|
|
|
directory,
|
|
|
|
extra,
|
2019-12-19 17:00:39 +03:00
|
|
|
fuzzy,
|
2019-05-20 18:36:08 +03:00
|
|
|
filepath,
|
2020-09-27 11:07:25 +03:00
|
|
|
fingertree,
|
2020-09-27 23:13:40 +03:00
|
|
|
Glob,
|
2020-01-28 22:20:38 +03:00
|
|
|
haddock-library >= 1.8,
|
2019-05-20 18:36:08 +03:00
|
|
|
hashable,
|
2020-05-13 15:59:51 +03:00
|
|
|
haskell-lsp-types == 0.22.*,
|
|
|
|
haskell-lsp == 0.22.*,
|
2020-10-20 10:18:56 +03:00
|
|
|
hie-compat,
|
2019-05-20 18:36:08 +03:00
|
|
|
mtl,
|
2019-06-14 15:26:25 +03:00
|
|
|
network-uri,
|
Opentelemetry traces and heapsize memory analysis (#922)
* Move tracing functions to own module
* Bump opentelemetry to 0.6.0
* Write Values map size to OpenTelemetry metric
* Trace all requests and notifications
Instead of doing it in `HoverDefinition`, do it in
with{Response,Notification,...}. These wrap all handlers, so this should
cover everything. It also means that the span covers the entire
processing time for the request, where before we missed the setup
happening in the with* functions.
* Add flag for OpenTelemetry profiling
Run GC regularly with --ot-profiling
* Add flag to enable OT profiling in benchmark
* Use heapsize instead of ghc-datasize
I renamed the fork to distringuish from the original.
It is still being pulled from git using stack. This will be addressed
once I can push the fork to hackage.
* Bump opentelemetry to 0.6.1 - fixes 8.6 build
* Use heapsize from hackage
* Address HLint messages
* Record size of each key independently
* Refactor `startTelemetry` function
* Remove delay between measuring memory loops
* Each key in values map gets own OT instrument
* Measure values map length more rarely
* Rename --ot-profiling to --ot-memory-profiling
* Add docs for how to use the opentelemetry output
* Add instructions to build release version of tracy
* Clarify dependencies in opentelemetry instructions
* Fix LSP traces
* otTraced: delete unused
* Extract types out of D.IDE.Core.Shake
to avoid circular module dependencies
* Extract startTelemetry out of D.IDE.Shake and upgrade to 0.2
No more segfaults
* [nix] install opentelemetry
* [nix] install tracy
* Fix merge wibble
* Measure recursive sizes with sharing
* Sort keys for cost attribution
* Remove debug traces
* Allocate less, group keys, clean up hlints
* Add -A4G to the flags used for --ot-memory-profiling
* Modularize D.IDE.Core.Tracing
I want to reuse this code more directly in the non lsp driver
* Direct driver: report closure sizes when --ot-memory-profiling
An eventlog memory analysis doesnt' seem so relevant since this mode is not
interactive, but we could easily produce both if wanted to
* Everything is reachable from GhcSessionIO, so compute it last
I suspect the ShakeExtras record is reachable from GhcSessionIO
* bound recursion and use logger
* hlint suggestions
* Fix 8.6 build
* Format imports
* Do the memory analysis with full sharing. GhcSessionIO last
* Fail fast in the memory analysis
* error handling
* runHeapsize now takes initSize as an input argument
* Trace Shake sessions
* Reduced frequency for sampling values length
* Drop the -fexternal-interpreter flag in the Windows stack build
* Produce more benchmark artifacts
* Fix stack descriptors to use heapsize-0.2 from Hackage
* Bump to heapsize-0.3.0
* Record completions snippets (#900)
* Add field for RecordSnippets to CachcedCompletion
* Initial version of local record snippets
* Supprt record snippet completion for non local declarations.
* Better integration of local completions with current implementation
* Clean up non-local completions.
* Remove commented code.
* Switch from String to Text
* Remove ununsed definition
* Treat only Records and leave other defintions as is.
* Differentiate Records from Data constructors for external declaration
* Update test to include snippet in local record completions expected list.
* Update completionTest to also compare insertText.
* Add test for record snippet completion for imported records.
* Hlint fixes
* Hlint fixes
* Hlint suggestions.
* Update type.
* Consolidate imports
* Unpack tuple with explicit names
* Idiomatic changes
* Remove unused variable
* Better variable name
* Hlint suggestions
* Handle exhaustive pattern warning
* Add _ to snippet field name suggestions
* Remove type information passed around but not used
* Update to list comprehension style
* Eliminate intermediate function
* HLint suggestions.
* Idiomatic list comprehension
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
* [nix] use gitignore.nix (#920)
* Ignore import list while producing completions (#919)
* Drop any items in explicit import list
* Test if imports not included in explicit list show up in completions
* Update README.md (#924)
* Custom cradle loading (#928)
When using ghcide as a library, it may be desirable to host the hie.yaml file
in a location other than the project root, or even avoid the file system altogether
* Favor `lookupPathToId` over `pathToId` (#926)
* Favor `lookupPathToId` over `pathToId`
* Fix `typecheckParentsAction`
* Fix `needsCompilationRule`
* Return completion snippets only when client supports it (#929)
* Use the real client capabilities on completions
* Return completion snippets only when supported by the client
Restored from https://github.com/haskell/ghcide/pull/900
* Redundant import
* Fix stack windows build
Co-authored-by: Michalis Pardalos <m.pardalos@gmail.com>
Co-authored-by: Michalis Pardalos <mpardalos@gmail.com>
Co-authored-by: Guru Devanla <gdevanla@users.noreply.github.com>
Co-authored-by: Samuel Ainsworth <skainsworth@gmail.com>
2020-12-05 20:44:17 +03:00
|
|
|
parallel,
|
2019-06-24 10:00:42 +03:00
|
|
|
prettyprinter-ansi-terminal,
|
2019-06-28 18:04:00 +03:00
|
|
|
prettyprinter-ansi-terminal,
|
|
|
|
prettyprinter,
|
2019-12-30 12:40:13 +03:00
|
|
|
regex-tdfa >= 1.3.1.0,
|
2019-06-14 02:12:34 +03:00
|
|
|
rope-utf16-splay,
|
2020-07-27 09:56:54 +03:00
|
|
|
safe,
|
2019-06-28 18:04:00 +03:00
|
|
|
safe-exceptions,
|
2020-02-03 15:26:16 +03:00
|
|
|
shake >= 0.18.4,
|
2019-06-14 02:12:34 +03:00
|
|
|
sorted-list,
|
2019-05-20 18:36:08 +03:00
|
|
|
stm,
|
|
|
|
syb,
|
|
|
|
text,
|
|
|
|
time,
|
|
|
|
transformers,
|
2020-02-11 12:09:48 +03:00
|
|
|
unordered-containers >= 0.2.10.0,
|
2019-10-17 12:11:52 +03:00
|
|
|
utf8-string,
|
Opentelemetry traces and heapsize memory analysis (#922)
* Move tracing functions to own module
* Bump opentelemetry to 0.6.0
* Write Values map size to OpenTelemetry metric
* Trace all requests and notifications
Instead of doing it in `HoverDefinition`, do it in
with{Response,Notification,...}. These wrap all handlers, so this should
cover everything. It also means that the span covers the entire
processing time for the request, where before we missed the setup
happening in the with* functions.
* Add flag for OpenTelemetry profiling
Run GC regularly with --ot-profiling
* Add flag to enable OT profiling in benchmark
* Use heapsize instead of ghc-datasize
I renamed the fork to distringuish from the original.
It is still being pulled from git using stack. This will be addressed
once I can push the fork to hackage.
* Bump opentelemetry to 0.6.1 - fixes 8.6 build
* Use heapsize from hackage
* Address HLint messages
* Record size of each key independently
* Refactor `startTelemetry` function
* Remove delay between measuring memory loops
* Each key in values map gets own OT instrument
* Measure values map length more rarely
* Rename --ot-profiling to --ot-memory-profiling
* Add docs for how to use the opentelemetry output
* Add instructions to build release version of tracy
* Clarify dependencies in opentelemetry instructions
* Fix LSP traces
* otTraced: delete unused
* Extract types out of D.IDE.Core.Shake
to avoid circular module dependencies
* Extract startTelemetry out of D.IDE.Shake and upgrade to 0.2
No more segfaults
* [nix] install opentelemetry
* [nix] install tracy
* Fix merge wibble
* Measure recursive sizes with sharing
* Sort keys for cost attribution
* Remove debug traces
* Allocate less, group keys, clean up hlints
* Add -A4G to the flags used for --ot-memory-profiling
* Modularize D.IDE.Core.Tracing
I want to reuse this code more directly in the non lsp driver
* Direct driver: report closure sizes when --ot-memory-profiling
An eventlog memory analysis doesnt' seem so relevant since this mode is not
interactive, but we could easily produce both if wanted to
* Everything is reachable from GhcSessionIO, so compute it last
I suspect the ShakeExtras record is reachable from GhcSessionIO
* bound recursion and use logger
* hlint suggestions
* Fix 8.6 build
* Format imports
* Do the memory analysis with full sharing. GhcSessionIO last
* Fail fast in the memory analysis
* error handling
* runHeapsize now takes initSize as an input argument
* Trace Shake sessions
* Reduced frequency for sampling values length
* Drop the -fexternal-interpreter flag in the Windows stack build
* Produce more benchmark artifacts
* Fix stack descriptors to use heapsize-0.2 from Hackage
* Bump to heapsize-0.3.0
* Record completions snippets (#900)
* Add field for RecordSnippets to CachcedCompletion
* Initial version of local record snippets
* Supprt record snippet completion for non local declarations.
* Better integration of local completions with current implementation
* Clean up non-local completions.
* Remove commented code.
* Switch from String to Text
* Remove ununsed definition
* Treat only Records and leave other defintions as is.
* Differentiate Records from Data constructors for external declaration
* Update test to include snippet in local record completions expected list.
* Update completionTest to also compare insertText.
* Add test for record snippet completion for imported records.
* Hlint fixes
* Hlint fixes
* Hlint suggestions.
* Update type.
* Consolidate imports
* Unpack tuple with explicit names
* Idiomatic changes
* Remove unused variable
* Better variable name
* Hlint suggestions
* Handle exhaustive pattern warning
* Add _ to snippet field name suggestions
* Remove type information passed around but not used
* Update to list comprehension style
* Eliminate intermediate function
* HLint suggestions.
* Idiomatic list comprehension
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
* [nix] use gitignore.nix (#920)
* Ignore import list while producing completions (#919)
* Drop any items in explicit import list
* Test if imports not included in explicit list show up in completions
* Update README.md (#924)
* Custom cradle loading (#928)
When using ghcide as a library, it may be desirable to host the hie.yaml file
in a location other than the project root, or even avoid the file system altogether
* Favor `lookupPathToId` over `pathToId` (#926)
* Favor `lookupPathToId` over `pathToId`
* Fix `typecheckParentsAction`
* Fix `needsCompilationRule`
* Return completion snippets only when client supports it (#929)
* Use the real client capabilities on completions
* Return completion snippets only when supported by the client
Restored from https://github.com/haskell/ghcide/pull/900
* Redundant import
* Fix stack windows build
Co-authored-by: Michalis Pardalos <m.pardalos@gmail.com>
Co-authored-by: Michalis Pardalos <mpardalos@gmail.com>
Co-authored-by: Guru Devanla <gdevanla@users.noreply.github.com>
Co-authored-by: Samuel Ainsworth <skainsworth@gmail.com>
2020-12-05 20:44:17 +03:00
|
|
|
hslogger,
|
|
|
|
opentelemetry >=0.6.1,
|
|
|
|
heapsize ==0.3.*
|
2019-09-16 12:31:09 +03:00
|
|
|
if flag(ghc-lib)
|
|
|
|
build-depends:
|
|
|
|
ghc-lib >= 8.8,
|
|
|
|
ghc-lib-parser >= 8.8
|
|
|
|
cpp-options: -DGHC_LIB
|
|
|
|
else
|
|
|
|
build-depends:
|
|
|
|
ghc-boot-th,
|
|
|
|
ghc-boot,
|
2020-11-07 22:58:13 +03:00
|
|
|
ghc >= 8.6,
|
2020-07-27 10:10:25 +03:00
|
|
|
-- These dependencies are used by Development.IDE.Session and are
|
|
|
|
-- Haskell specific. So don't use them when building with -fghc-lib!
|
2020-09-04 16:03:24 +03:00
|
|
|
ghc-check >=0.5.0.1,
|
2020-07-27 10:10:25 +03:00
|
|
|
ghc-paths,
|
|
|
|
cryptohash-sha1 >=0.11.100 && <0.12,
|
2020-09-08 16:24:49 +03:00
|
|
|
hie-bios >= 0.7.1 && < 0.8.0,
|
2020-12-04 20:10:16 +03:00
|
|
|
implicit-hie-cradle >= 0.3.0.2 && < 0.4,
|
2020-07-27 10:10:25 +03:00
|
|
|
base16-bytestring >=0.1.1 && <0.2
|
2020-04-27 13:59:13 +03:00
|
|
|
if os(windows)
|
|
|
|
build-depends:
|
|
|
|
Win32
|
|
|
|
else
|
2019-07-31 12:24:37 +03:00
|
|
|
build-depends:
|
|
|
|
unix
|
|
|
|
c-sources:
|
|
|
|
cbits/getmodtime.c
|
2019-05-20 18:36:08 +03:00
|
|
|
|
|
|
|
default-extensions:
|
|
|
|
BangPatterns
|
2019-07-25 15:50:07 +03:00
|
|
|
DeriveFunctor
|
2019-05-20 18:36:08 +03:00
|
|
|
DeriveGeneric
|
2020-09-05 23:43:17 +03:00
|
|
|
FlexibleContexts
|
2019-06-28 18:04:00 +03:00
|
|
|
GeneralizedNewtypeDeriving
|
|
|
|
LambdaCase
|
|
|
|
NamedFieldPuns
|
2019-07-25 15:50:07 +03:00
|
|
|
OverloadedStrings
|
2019-05-20 18:36:08 +03:00
|
|
|
RecordWildCards
|
|
|
|
ScopedTypeVariables
|
2019-06-28 18:04:00 +03:00
|
|
|
StandaloneDeriving
|
2019-05-20 18:36:08 +03:00
|
|
|
TupleSections
|
|
|
|
TypeApplications
|
|
|
|
ViewPatterns
|
|
|
|
|
|
|
|
hs-source-dirs:
|
|
|
|
src
|
2019-09-16 12:31:09 +03:00
|
|
|
include-dirs:
|
|
|
|
include
|
2019-05-20 18:36:08 +03:00
|
|
|
exposed-modules:
|
2020-09-02 21:28:07 +03:00
|
|
|
Development.IDE
|
2020-04-27 13:59:13 +03:00
|
|
|
Development.IDE.Compat
|
2020-02-06 22:57:55 +03:00
|
|
|
Development.IDE.Core.Debouncer
|
2019-06-24 14:46:51 +03:00
|
|
|
Development.IDE.Core.FileStore
|
2020-02-13 15:34:11 +03:00
|
|
|
Development.IDE.Core.IdeConfiguration
|
2019-06-24 14:46:51 +03:00
|
|
|
Development.IDE.Core.OfInterest
|
2019-07-25 15:50:07 +03:00
|
|
|
Development.IDE.Core.PositionMapping
|
2020-10-28 23:16:09 +03:00
|
|
|
Development.IDE.Core.Preprocessor
|
2019-06-24 14:46:51 +03:00
|
|
|
Development.IDE.Core.Rules
|
|
|
|
Development.IDE.Core.RuleTypes
|
|
|
|
Development.IDE.Core.Service
|
|
|
|
Development.IDE.Core.Shake
|
Opentelemetry traces and heapsize memory analysis (#922)
* Move tracing functions to own module
* Bump opentelemetry to 0.6.0
* Write Values map size to OpenTelemetry metric
* Trace all requests and notifications
Instead of doing it in `HoverDefinition`, do it in
with{Response,Notification,...}. These wrap all handlers, so this should
cover everything. It also means that the span covers the entire
processing time for the request, where before we missed the setup
happening in the with* functions.
* Add flag for OpenTelemetry profiling
Run GC regularly with --ot-profiling
* Add flag to enable OT profiling in benchmark
* Use heapsize instead of ghc-datasize
I renamed the fork to distringuish from the original.
It is still being pulled from git using stack. This will be addressed
once I can push the fork to hackage.
* Bump opentelemetry to 0.6.1 - fixes 8.6 build
* Use heapsize from hackage
* Address HLint messages
* Record size of each key independently
* Refactor `startTelemetry` function
* Remove delay between measuring memory loops
* Each key in values map gets own OT instrument
* Measure values map length more rarely
* Rename --ot-profiling to --ot-memory-profiling
* Add docs for how to use the opentelemetry output
* Add instructions to build release version of tracy
* Clarify dependencies in opentelemetry instructions
* Fix LSP traces
* otTraced: delete unused
* Extract types out of D.IDE.Core.Shake
to avoid circular module dependencies
* Extract startTelemetry out of D.IDE.Shake and upgrade to 0.2
No more segfaults
* [nix] install opentelemetry
* [nix] install tracy
* Fix merge wibble
* Measure recursive sizes with sharing
* Sort keys for cost attribution
* Remove debug traces
* Allocate less, group keys, clean up hlints
* Add -A4G to the flags used for --ot-memory-profiling
* Modularize D.IDE.Core.Tracing
I want to reuse this code more directly in the non lsp driver
* Direct driver: report closure sizes when --ot-memory-profiling
An eventlog memory analysis doesnt' seem so relevant since this mode is not
interactive, but we could easily produce both if wanted to
* Everything is reachable from GhcSessionIO, so compute it last
I suspect the ShakeExtras record is reachable from GhcSessionIO
* bound recursion and use logger
* hlint suggestions
* Fix 8.6 build
* Format imports
* Do the memory analysis with full sharing. GhcSessionIO last
* Fail fast in the memory analysis
* error handling
* runHeapsize now takes initSize as an input argument
* Trace Shake sessions
* Reduced frequency for sampling values length
* Drop the -fexternal-interpreter flag in the Windows stack build
* Produce more benchmark artifacts
* Fix stack descriptors to use heapsize-0.2 from Hackage
* Bump to heapsize-0.3.0
* Record completions snippets (#900)
* Add field for RecordSnippets to CachcedCompletion
* Initial version of local record snippets
* Supprt record snippet completion for non local declarations.
* Better integration of local completions with current implementation
* Clean up non-local completions.
* Remove commented code.
* Switch from String to Text
* Remove ununsed definition
* Treat only Records and leave other defintions as is.
* Differentiate Records from Data constructors for external declaration
* Update test to include snippet in local record completions expected list.
* Update completionTest to also compare insertText.
* Add test for record snippet completion for imported records.
* Hlint fixes
* Hlint fixes
* Hlint suggestions.
* Update type.
* Consolidate imports
* Unpack tuple with explicit names
* Idiomatic changes
* Remove unused variable
* Better variable name
* Hlint suggestions
* Handle exhaustive pattern warning
* Add _ to snippet field name suggestions
* Remove type information passed around but not used
* Update to list comprehension style
* Eliminate intermediate function
* HLint suggestions.
* Idiomatic list comprehension
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
* [nix] use gitignore.nix (#920)
* Ignore import list while producing completions (#919)
* Drop any items in explicit import list
* Test if imports not included in explicit list show up in completions
* Update README.md (#924)
* Custom cradle loading (#928)
When using ghcide as a library, it may be desirable to host the hie.yaml file
in a location other than the project root, or even avoid the file system altogether
* Favor `lookupPathToId` over `pathToId` (#926)
* Favor `lookupPathToId` over `pathToId`
* Fix `typecheckParentsAction`
* Fix `needsCompilationRule`
* Return completion snippets only when client supports it (#929)
* Use the real client capabilities on completions
* Return completion snippets only when supported by the client
Restored from https://github.com/haskell/ghcide/pull/900
* Redundant import
* Fix stack windows build
Co-authored-by: Michalis Pardalos <m.pardalos@gmail.com>
Co-authored-by: Michalis Pardalos <mpardalos@gmail.com>
Co-authored-by: Guru Devanla <gdevanla@users.noreply.github.com>
Co-authored-by: Samuel Ainsworth <skainsworth@gmail.com>
2020-12-05 20:44:17 +03:00
|
|
|
Development.IDE.Core.Tracing
|
2020-07-27 10:11:23 +03:00
|
|
|
Development.IDE.GHC.Compat
|
2020-01-26 16:26:09 +03:00
|
|
|
Development.IDE.GHC.Error
|
2020-11-07 16:01:35 +03:00
|
|
|
Development.IDE.GHC.Orphans
|
2019-07-03 16:37:13 +03:00
|
|
|
Development.IDE.GHC.Util
|
|
|
|
Development.IDE.Import.DependencyInformation
|
2020-03-19 13:41:09 +03:00
|
|
|
Development.IDE.LSP.HoverDefinition
|
2019-07-03 16:37:13 +03:00
|
|
|
Development.IDE.LSP.LanguageServer
|
2020-03-24 14:40:56 +03:00
|
|
|
Development.IDE.LSP.Outline
|
2019-07-03 16:37:13 +03:00
|
|
|
Development.IDE.LSP.Protocol
|
|
|
|
Development.IDE.LSP.Server
|
2020-01-27 18:30:54 +03:00
|
|
|
Development.IDE.Spans.Common
|
2020-09-27 11:07:25 +03:00
|
|
|
Development.IDE.Spans.AtPoint
|
|
|
|
Development.IDE.Spans.LocalBindings
|
2019-07-03 16:37:13 +03:00
|
|
|
Development.IDE.Types.Diagnostics
|
2020-09-03 11:32:40 +03:00
|
|
|
Development.IDE.Types.Exports
|
Opentelemetry traces and heapsize memory analysis (#922)
* Move tracing functions to own module
* Bump opentelemetry to 0.6.0
* Write Values map size to OpenTelemetry metric
* Trace all requests and notifications
Instead of doing it in `HoverDefinition`, do it in
with{Response,Notification,...}. These wrap all handlers, so this should
cover everything. It also means that the span covers the entire
processing time for the request, where before we missed the setup
happening in the with* functions.
* Add flag for OpenTelemetry profiling
Run GC regularly with --ot-profiling
* Add flag to enable OT profiling in benchmark
* Use heapsize instead of ghc-datasize
I renamed the fork to distringuish from the original.
It is still being pulled from git using stack. This will be addressed
once I can push the fork to hackage.
* Bump opentelemetry to 0.6.1 - fixes 8.6 build
* Use heapsize from hackage
* Address HLint messages
* Record size of each key independently
* Refactor `startTelemetry` function
* Remove delay between measuring memory loops
* Each key in values map gets own OT instrument
* Measure values map length more rarely
* Rename --ot-profiling to --ot-memory-profiling
* Add docs for how to use the opentelemetry output
* Add instructions to build release version of tracy
* Clarify dependencies in opentelemetry instructions
* Fix LSP traces
* otTraced: delete unused
* Extract types out of D.IDE.Core.Shake
to avoid circular module dependencies
* Extract startTelemetry out of D.IDE.Shake and upgrade to 0.2
No more segfaults
* [nix] install opentelemetry
* [nix] install tracy
* Fix merge wibble
* Measure recursive sizes with sharing
* Sort keys for cost attribution
* Remove debug traces
* Allocate less, group keys, clean up hlints
* Add -A4G to the flags used for --ot-memory-profiling
* Modularize D.IDE.Core.Tracing
I want to reuse this code more directly in the non lsp driver
* Direct driver: report closure sizes when --ot-memory-profiling
An eventlog memory analysis doesnt' seem so relevant since this mode is not
interactive, but we could easily produce both if wanted to
* Everything is reachable from GhcSessionIO, so compute it last
I suspect the ShakeExtras record is reachable from GhcSessionIO
* bound recursion and use logger
* hlint suggestions
* Fix 8.6 build
* Format imports
* Do the memory analysis with full sharing. GhcSessionIO last
* Fail fast in the memory analysis
* error handling
* runHeapsize now takes initSize as an input argument
* Trace Shake sessions
* Reduced frequency for sampling values length
* Drop the -fexternal-interpreter flag in the Windows stack build
* Produce more benchmark artifacts
* Fix stack descriptors to use heapsize-0.2 from Hackage
* Bump to heapsize-0.3.0
* Record completions snippets (#900)
* Add field for RecordSnippets to CachcedCompletion
* Initial version of local record snippets
* Supprt record snippet completion for non local declarations.
* Better integration of local completions with current implementation
* Clean up non-local completions.
* Remove commented code.
* Switch from String to Text
* Remove ununsed definition
* Treat only Records and leave other defintions as is.
* Differentiate Records from Data constructors for external declaration
* Update test to include snippet in local record completions expected list.
* Update completionTest to also compare insertText.
* Add test for record snippet completion for imported records.
* Hlint fixes
* Hlint fixes
* Hlint suggestions.
* Update type.
* Consolidate imports
* Unpack tuple with explicit names
* Idiomatic changes
* Remove unused variable
* Better variable name
* Hlint suggestions
* Handle exhaustive pattern warning
* Add _ to snippet field name suggestions
* Remove type information passed around but not used
* Update to list comprehension style
* Eliminate intermediate function
* HLint suggestions.
* Idiomatic list comprehension
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
* [nix] use gitignore.nix (#920)
* Ignore import list while producing completions (#919)
* Drop any items in explicit import list
* Test if imports not included in explicit list show up in completions
* Update README.md (#924)
* Custom cradle loading (#928)
When using ghcide as a library, it may be desirable to host the hie.yaml file
in a location other than the project root, or even avoid the file system altogether
* Favor `lookupPathToId` over `pathToId` (#926)
* Favor `lookupPathToId` over `pathToId`
* Fix `typecheckParentsAction`
* Fix `needsCompilationRule`
* Return completion snippets only when client supports it (#929)
* Use the real client capabilities on completions
* Return completion snippets only when supported by the client
Restored from https://github.com/haskell/ghcide/pull/900
* Redundant import
* Fix stack windows build
Co-authored-by: Michalis Pardalos <m.pardalos@gmail.com>
Co-authored-by: Michalis Pardalos <mpardalos@gmail.com>
Co-authored-by: Guru Devanla <gdevanla@users.noreply.github.com>
Co-authored-by: Samuel Ainsworth <skainsworth@gmail.com>
2020-12-05 20:44:17 +03:00
|
|
|
Development.IDE.Types.KnownTargets
|
2019-07-03 16:37:13 +03:00
|
|
|
Development.IDE.Types.Location
|
|
|
|
Development.IDE.Types.Logger
|
|
|
|
Development.IDE.Types.Options
|
Opentelemetry traces and heapsize memory analysis (#922)
* Move tracing functions to own module
* Bump opentelemetry to 0.6.0
* Write Values map size to OpenTelemetry metric
* Trace all requests and notifications
Instead of doing it in `HoverDefinition`, do it in
with{Response,Notification,...}. These wrap all handlers, so this should
cover everything. It also means that the span covers the entire
processing time for the request, where before we missed the setup
happening in the with* functions.
* Add flag for OpenTelemetry profiling
Run GC regularly with --ot-profiling
* Add flag to enable OT profiling in benchmark
* Use heapsize instead of ghc-datasize
I renamed the fork to distringuish from the original.
It is still being pulled from git using stack. This will be addressed
once I can push the fork to hackage.
* Bump opentelemetry to 0.6.1 - fixes 8.6 build
* Use heapsize from hackage
* Address HLint messages
* Record size of each key independently
* Refactor `startTelemetry` function
* Remove delay between measuring memory loops
* Each key in values map gets own OT instrument
* Measure values map length more rarely
* Rename --ot-profiling to --ot-memory-profiling
* Add docs for how to use the opentelemetry output
* Add instructions to build release version of tracy
* Clarify dependencies in opentelemetry instructions
* Fix LSP traces
* otTraced: delete unused
* Extract types out of D.IDE.Core.Shake
to avoid circular module dependencies
* Extract startTelemetry out of D.IDE.Shake and upgrade to 0.2
No more segfaults
* [nix] install opentelemetry
* [nix] install tracy
* Fix merge wibble
* Measure recursive sizes with sharing
* Sort keys for cost attribution
* Remove debug traces
* Allocate less, group keys, clean up hlints
* Add -A4G to the flags used for --ot-memory-profiling
* Modularize D.IDE.Core.Tracing
I want to reuse this code more directly in the non lsp driver
* Direct driver: report closure sizes when --ot-memory-profiling
An eventlog memory analysis doesnt' seem so relevant since this mode is not
interactive, but we could easily produce both if wanted to
* Everything is reachable from GhcSessionIO, so compute it last
I suspect the ShakeExtras record is reachable from GhcSessionIO
* bound recursion and use logger
* hlint suggestions
* Fix 8.6 build
* Format imports
* Do the memory analysis with full sharing. GhcSessionIO last
* Fail fast in the memory analysis
* error handling
* runHeapsize now takes initSize as an input argument
* Trace Shake sessions
* Reduced frequency for sampling values length
* Drop the -fexternal-interpreter flag in the Windows stack build
* Produce more benchmark artifacts
* Fix stack descriptors to use heapsize-0.2 from Hackage
* Bump to heapsize-0.3.0
* Record completions snippets (#900)
* Add field for RecordSnippets to CachcedCompletion
* Initial version of local record snippets
* Supprt record snippet completion for non local declarations.
* Better integration of local completions with current implementation
* Clean up non-local completions.
* Remove commented code.
* Switch from String to Text
* Remove ununsed definition
* Treat only Records and leave other defintions as is.
* Differentiate Records from Data constructors for external declaration
* Update test to include snippet in local record completions expected list.
* Update completionTest to also compare insertText.
* Add test for record snippet completion for imported records.
* Hlint fixes
* Hlint fixes
* Hlint suggestions.
* Update type.
* Consolidate imports
* Unpack tuple with explicit names
* Idiomatic changes
* Remove unused variable
* Better variable name
* Hlint suggestions
* Handle exhaustive pattern warning
* Add _ to snippet field name suggestions
* Remove type information passed around but not used
* Update to list comprehension style
* Eliminate intermediate function
* HLint suggestions.
* Idiomatic list comprehension
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
* [nix] use gitignore.nix (#920)
* Ignore import list while producing completions (#919)
* Drop any items in explicit import list
* Test if imports not included in explicit list show up in completions
* Update README.md (#924)
* Custom cradle loading (#928)
When using ghcide as a library, it may be desirable to host the hie.yaml file
in a location other than the project root, or even avoid the file system altogether
* Favor `lookupPathToId` over `pathToId` (#926)
* Favor `lookupPathToId` over `pathToId`
* Fix `typecheckParentsAction`
* Fix `needsCompilationRule`
* Return completion snippets only when client supports it (#929)
* Use the real client capabilities on completions
* Return completion snippets only when supported by the client
Restored from https://github.com/haskell/ghcide/pull/900
* Redundant import
* Fix stack windows build
Co-authored-by: Michalis Pardalos <m.pardalos@gmail.com>
Co-authored-by: Michalis Pardalos <mpardalos@gmail.com>
Co-authored-by: Guru Devanla <gdevanla@users.noreply.github.com>
Co-authored-by: Samuel Ainsworth <skainsworth@gmail.com>
2020-12-05 20:44:17 +03:00
|
|
|
Development.IDE.Types.Shake
|
2020-01-26 14:28:11 +03:00
|
|
|
Development.IDE.Plugin
|
2020-01-26 12:36:48 +03:00
|
|
|
Development.IDE.Plugin.Completions
|
|
|
|
Development.IDE.Plugin.CodeAction
|
2020-09-07 14:29:05 +03:00
|
|
|
Development.IDE.Plugin.Test
|
2020-07-27 10:10:25 +03:00
|
|
|
|
|
|
|
-- Unfortunately, we cannot use loadSession with ghc-lib since hie-bios uses
|
|
|
|
-- the real GHC library and the types are incompatible. Furthermore, when
|
|
|
|
-- building with ghc-lib we need to make this Haskell agnostic, so no
|
|
|
|
-- hie-bios!
|
|
|
|
-- We also put these modules into a separate hs-source-dirs so we can avoid
|
|
|
|
-- compiling them at all if ghc-lib is not set
|
|
|
|
if !flag(ghc-lib)
|
|
|
|
hs-source-dirs:
|
|
|
|
session-loader
|
|
|
|
exposed-modules:
|
|
|
|
Development.IDE.Session
|
|
|
|
other-modules:
|
|
|
|
Development.IDE.Session.VersionCheck
|
2019-07-03 16:37:13 +03:00
|
|
|
other-modules:
|
|
|
|
Development.IDE.Core.Compile
|
2020-01-21 11:05:58 +03:00
|
|
|
Development.IDE.Core.FileExists
|
2019-06-22 11:21:59 +03:00
|
|
|
Development.IDE.GHC.CPP
|
2019-06-24 14:46:51 +03:00
|
|
|
Development.IDE.GHC.Warnings
|
2019-06-22 11:21:59 +03:00
|
|
|
Development.IDE.Import.FindImports
|
2019-06-25 18:13:17 +03:00
|
|
|
Development.IDE.LSP.Notifications
|
2019-06-24 14:46:51 +03:00
|
|
|
Development.IDE.Spans.Documentation
|
2020-02-18 11:22:17 +03:00
|
|
|
Development.IDE.Plugin.CodeAction.PositionIndexed
|
2020-03-09 15:22:46 +03:00
|
|
|
Development.IDE.Plugin.CodeAction.Rules
|
|
|
|
Development.IDE.Plugin.CodeAction.RuleTypes
|
2020-01-26 12:36:48 +03:00
|
|
|
Development.IDE.Plugin.Completions.Logic
|
|
|
|
Development.IDE.Plugin.Completions.Types
|
2020-09-05 15:52:17 +03:00
|
|
|
Development.IDE.Types.Action
|
2020-09-03 07:31:53 +03:00
|
|
|
ghc-options: -Wall -Wno-name-shadowing -Wincomplete-uni-patterns
|
2019-05-20 18:36:08 +03:00
|
|
|
|
2019-12-19 14:06:03 +03:00
|
|
|
executable ghcide-test-preprocessor
|
|
|
|
default-language: Haskell2010
|
|
|
|
hs-source-dirs: test/preprocessor
|
2020-02-11 12:09:48 +03:00
|
|
|
ghc-options: -Wall -Wno-name-shadowing
|
2019-12-19 14:06:03 +03:00
|
|
|
main-is: Main.hs
|
|
|
|
build-depends:
|
|
|
|
base == 4.*
|
|
|
|
|
2020-06-29 12:00:53 +03:00
|
|
|
benchmark benchHist
|
|
|
|
type: exitcode-stdio-1.0
|
2020-06-15 14:56:24 +03:00
|
|
|
default-language: Haskell2010
|
|
|
|
ghc-options: -Wall -Wno-name-shadowing -threaded
|
2020-09-29 09:47:09 +03:00
|
|
|
main-is: Main.hs
|
|
|
|
hs-source-dirs: bench/hist bench/lib
|
|
|
|
other-modules: Experiments.Types
|
2020-06-29 12:00:53 +03:00
|
|
|
build-tool-depends:
|
|
|
|
ghcide:ghcide,
|
|
|
|
ghcide:ghcide-bench
|
2020-06-15 14:56:24 +03:00
|
|
|
default-extensions:
|
|
|
|
BangPatterns
|
|
|
|
DeriveFunctor
|
|
|
|
DeriveGeneric
|
2020-09-05 23:43:17 +03:00
|
|
|
FlexibleContexts
|
2020-06-15 14:56:24 +03:00
|
|
|
GeneralizedNewtypeDeriving
|
|
|
|
LambdaCase
|
|
|
|
NamedFieldPuns
|
|
|
|
OverloadedStrings
|
|
|
|
RecordWildCards
|
|
|
|
ScopedTypeVariables
|
|
|
|
StandaloneDeriving
|
|
|
|
TupleSections
|
|
|
|
TypeApplications
|
|
|
|
ViewPatterns
|
|
|
|
|
|
|
|
build-depends:
|
|
|
|
aeson,
|
|
|
|
base == 4.*,
|
|
|
|
Chart,
|
|
|
|
Chart-diagrams,
|
|
|
|
diagrams,
|
|
|
|
diagrams-svg,
|
|
|
|
directory,
|
2020-06-29 12:00:53 +03:00
|
|
|
extra >= 1.7.2,
|
2020-06-15 14:56:24 +03:00
|
|
|
filepath,
|
|
|
|
shake,
|
|
|
|
text,
|
|
|
|
yaml
|
|
|
|
|
2019-09-09 16:55:16 +03:00
|
|
|
executable ghcide
|
2019-09-16 12:31:09 +03:00
|
|
|
if flag(ghc-lib)
|
|
|
|
buildable: False
|
2019-05-20 18:36:08 +03:00
|
|
|
default-language: Haskell2010
|
2019-06-26 19:07:08 +03:00
|
|
|
hs-source-dirs: exe
|
2020-01-17 18:27:39 +03:00
|
|
|
ghc-options:
|
|
|
|
-threaded
|
|
|
|
-Wall
|
2020-09-03 07:31:53 +03:00
|
|
|
-Wincomplete-uni-patterns
|
2020-01-17 18:27:39 +03:00
|
|
|
-Wno-name-shadowing
|
|
|
|
-- allow user RTS overrides
|
|
|
|
-rtsopts
|
|
|
|
-- disable idle GC
|
|
|
|
-- disable parallel GC
|
|
|
|
-- increase nursery size
|
Fix -with-rtsopts flags (#333)
Before this change:
[nix-shell:~/scratch/ghcide]$ /home/pepe/scratch/ghcide/dist-newstyle/build/x86_64-linux/ghc-8.8.1/ghcide-0.0.6/x/ghcide/build/ghcide/ghcide +RTS --info
[("GHC RTS", "YES")
,("GHC version", "8.8.1")
,("RTS way", "rts_thr_p")
,("Build platform", "x86_64-unknown-linux")
,("Build architecture", "x86_64")
,("Build OS", "linux")
,("Build vendor", "unknown")
,("Host platform", "x86_64-unknown-linux")
,("Host architecture", "x86_64")
,("Host OS", "linux")
,("Host vendor", "unknown")
,("Target platform", "x86_64-unknown-linux")
,("Target architecture", "x86_64")
,("Target OS", "linux")
,("Target vendor", "unknown")
,("Word size", "64")
,("Compiler unregisterised", "NO")
,("Tables next to code", "YES")
,("Flag -with-rtsopts", "-A128M")
]
After this change:
[nix-shell:~/scratch/ghcide]$ /home/pepe/scratch/ghcide/dist-newstyle/build/x86_64-linux/ghc-8.8.1/ghcide-0.0.6/x/ghcide/build/ghcide/ghcide +RTS --info
[("GHC RTS", "YES")
,("GHC version", "8.8.1")
,("RTS way", "rts_thr")
,("Build platform", "x86_64-unknown-linux")
,("Build architecture", "x86_64")
,("Build OS", "linux")
,("Build vendor", "unknown")
,("Host platform", "x86_64-unknown-linux")
,("Host architecture", "x86_64")
,("Host OS", "linux")
,("Host vendor", "unknown")
,("Target platform", "x86_64-unknown-linux")
,("Target architecture", "x86_64")
,("Target OS", "linux")
,("Target vendor", "unknown")
,("Word size", "64")
,("Compiler unregisterised", "NO")
,("Tables next to code", "YES")
,("Flag -with-rtsopts", "-I0 -qg -A128M")
]
2020-01-19 19:06:12 +03:00
|
|
|
"-with-rtsopts=-I0 -qg -A128M"
|
2019-06-26 19:07:08 +03:00
|
|
|
main-is: Main.hs
|
2019-05-20 18:36:08 +03:00
|
|
|
build-depends:
|
2020-09-02 20:06:04 +03:00
|
|
|
aeson,
|
2019-05-20 18:36:08 +03:00
|
|
|
base == 4.*,
|
2019-06-26 11:04:10 +03:00
|
|
|
data-default,
|
2019-06-28 18:04:00 +03:00
|
|
|
directory,
|
2019-05-20 18:36:08 +03:00
|
|
|
extra,
|
2019-06-26 19:07:08 +03:00
|
|
|
filepath,
|
2020-01-06 11:13:14 +03:00
|
|
|
gitrev,
|
2020-02-17 12:33:33 +03:00
|
|
|
hashable,
|
2019-06-14 02:12:34 +03:00
|
|
|
haskell-lsp,
|
2020-03-04 19:31:24 +03:00
|
|
|
haskell-lsp-types,
|
Opentelemetry traces and heapsize memory analysis (#922)
* Move tracing functions to own module
* Bump opentelemetry to 0.6.0
* Write Values map size to OpenTelemetry metric
* Trace all requests and notifications
Instead of doing it in `HoverDefinition`, do it in
with{Response,Notification,...}. These wrap all handlers, so this should
cover everything. It also means that the span covers the entire
processing time for the request, where before we missed the setup
happening in the with* functions.
* Add flag for OpenTelemetry profiling
Run GC regularly with --ot-profiling
* Add flag to enable OT profiling in benchmark
* Use heapsize instead of ghc-datasize
I renamed the fork to distringuish from the original.
It is still being pulled from git using stack. This will be addressed
once I can push the fork to hackage.
* Bump opentelemetry to 0.6.1 - fixes 8.6 build
* Use heapsize from hackage
* Address HLint messages
* Record size of each key independently
* Refactor `startTelemetry` function
* Remove delay between measuring memory loops
* Each key in values map gets own OT instrument
* Measure values map length more rarely
* Rename --ot-profiling to --ot-memory-profiling
* Add docs for how to use the opentelemetry output
* Add instructions to build release version of tracy
* Clarify dependencies in opentelemetry instructions
* Fix LSP traces
* otTraced: delete unused
* Extract types out of D.IDE.Core.Shake
to avoid circular module dependencies
* Extract startTelemetry out of D.IDE.Shake and upgrade to 0.2
No more segfaults
* [nix] install opentelemetry
* [nix] install tracy
* Fix merge wibble
* Measure recursive sizes with sharing
* Sort keys for cost attribution
* Remove debug traces
* Allocate less, group keys, clean up hlints
* Add -A4G to the flags used for --ot-memory-profiling
* Modularize D.IDE.Core.Tracing
I want to reuse this code more directly in the non lsp driver
* Direct driver: report closure sizes when --ot-memory-profiling
An eventlog memory analysis doesnt' seem so relevant since this mode is not
interactive, but we could easily produce both if wanted to
* Everything is reachable from GhcSessionIO, so compute it last
I suspect the ShakeExtras record is reachable from GhcSessionIO
* bound recursion and use logger
* hlint suggestions
* Fix 8.6 build
* Format imports
* Do the memory analysis with full sharing. GhcSessionIO last
* Fail fast in the memory analysis
* error handling
* runHeapsize now takes initSize as an input argument
* Trace Shake sessions
* Reduced frequency for sampling values length
* Drop the -fexternal-interpreter flag in the Windows stack build
* Produce more benchmark artifacts
* Fix stack descriptors to use heapsize-0.2 from Hackage
* Bump to heapsize-0.3.0
* Record completions snippets (#900)
* Add field for RecordSnippets to CachcedCompletion
* Initial version of local record snippets
* Supprt record snippet completion for non local declarations.
* Better integration of local completions with current implementation
* Clean up non-local completions.
* Remove commented code.
* Switch from String to Text
* Remove ununsed definition
* Treat only Records and leave other defintions as is.
* Differentiate Records from Data constructors for external declaration
* Update test to include snippet in local record completions expected list.
* Update completionTest to also compare insertText.
* Add test for record snippet completion for imported records.
* Hlint fixes
* Hlint fixes
* Hlint suggestions.
* Update type.
* Consolidate imports
* Unpack tuple with explicit names
* Idiomatic changes
* Remove unused variable
* Better variable name
* Hlint suggestions
* Handle exhaustive pattern warning
* Add _ to snippet field name suggestions
* Remove type information passed around but not used
* Update to list comprehension style
* Eliminate intermediate function
* HLint suggestions.
* Idiomatic list comprehension
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
* [nix] use gitignore.nix (#920)
* Ignore import list while producing completions (#919)
* Drop any items in explicit import list
* Test if imports not included in explicit list show up in completions
* Update README.md (#924)
* Custom cradle loading (#928)
When using ghcide as a library, it may be desirable to host the hie.yaml file
in a location other than the project root, or even avoid the file system altogether
* Favor `lookupPathToId` over `pathToId` (#926)
* Favor `lookupPathToId` over `pathToId`
* Fix `typecheckParentsAction`
* Fix `needsCompilationRule`
* Return completion snippets only when client supports it (#929)
* Use the real client capabilities on completions
* Return completion snippets only when supported by the client
Restored from https://github.com/haskell/ghcide/pull/900
* Redundant import
* Fix stack windows build
Co-authored-by: Michalis Pardalos <m.pardalos@gmail.com>
Co-authored-by: Michalis Pardalos <mpardalos@gmail.com>
Co-authored-by: Guru Devanla <gdevanla@users.noreply.github.com>
Co-authored-by: Samuel Ainsworth <skainsworth@gmail.com>
2020-12-05 20:44:17 +03:00
|
|
|
heapsize,
|
2020-09-08 16:24:49 +03:00
|
|
|
hie-bios,
|
2019-09-09 16:55:16 +03:00
|
|
|
ghcide,
|
2020-09-02 20:06:04 +03:00
|
|
|
lens,
|
2019-06-28 18:04:00 +03:00
|
|
|
optparse-applicative,
|
2020-02-11 12:09:48 +03:00
|
|
|
text,
|
|
|
|
unordered-containers
|
2019-06-26 19:07:08 +03:00
|
|
|
other-modules:
|
|
|
|
Arguments
|
2019-09-24 01:09:20 +03:00
|
|
|
Paths_ghcide
|
2019-05-20 18:36:08 +03:00
|
|
|
|
|
|
|
default-extensions:
|
2020-03-04 19:31:24 +03:00
|
|
|
BangPatterns
|
|
|
|
DeriveFunctor
|
2020-02-17 12:33:33 +03:00
|
|
|
DeriveGeneric
|
2020-09-05 23:43:17 +03:00
|
|
|
FlexibleContexts
|
2020-03-04 19:31:24 +03:00
|
|
|
GeneralizedNewtypeDeriving
|
|
|
|
LambdaCase
|
|
|
|
NamedFieldPuns
|
|
|
|
OverloadedStrings
|
2019-05-20 18:36:08 +03:00
|
|
|
RecordWildCards
|
2020-03-04 19:31:24 +03:00
|
|
|
ScopedTypeVariables
|
|
|
|
StandaloneDeriving
|
2019-06-28 18:04:00 +03:00
|
|
|
TupleSections
|
2020-03-04 19:31:24 +03:00
|
|
|
TypeApplications
|
2019-06-14 02:12:34 +03:00
|
|
|
ViewPatterns
|
2019-07-25 15:50:07 +03:00
|
|
|
|
2019-09-09 16:55:16 +03:00
|
|
|
test-suite ghcide-tests
|
2019-09-16 12:31:09 +03:00
|
|
|
if flag(ghc-lib)
|
|
|
|
buildable: False
|
2019-07-25 15:50:07 +03:00
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
default-language: Haskell2010
|
|
|
|
build-tool-depends:
|
2019-12-19 14:06:03 +03:00
|
|
|
ghcide:ghcide,
|
|
|
|
ghcide:ghcide-test-preprocessor
|
2019-07-25 15:50:07 +03:00
|
|
|
build-depends:
|
2019-12-19 17:00:39 +03:00
|
|
|
aeson,
|
2019-07-25 15:50:07 +03:00
|
|
|
base,
|
2020-07-24 17:47:20 +03:00
|
|
|
binary,
|
2019-10-22 17:41:13 +03:00
|
|
|
bytestring,
|
2019-07-25 15:50:07 +03:00
|
|
|
containers,
|
2019-09-25 14:01:41 +03:00
|
|
|
directory,
|
2019-07-25 15:50:07 +03:00
|
|
|
extra,
|
|
|
|
filepath,
|
2019-09-16 17:43:50 +03:00
|
|
|
--------------------------------------------------------------
|
|
|
|
-- The MIN_GHC_API_VERSION macro relies on MIN_VERSION pragmas
|
|
|
|
-- which require depending on ghc. So the tests need to depend
|
|
|
|
-- on ghc if they need to use MIN_GHC_API_VERSION. Maybe a
|
|
|
|
-- better solution can be found, but this is a quick solution
|
|
|
|
-- which works for now.
|
|
|
|
ghc,
|
|
|
|
--------------------------------------------------------------
|
2019-10-22 17:41:13 +03:00
|
|
|
ghcide,
|
2019-11-15 11:27:28 +03:00
|
|
|
ghc-typelits-knownnat,
|
2020-01-27 18:30:54 +03:00
|
|
|
haddock-library,
|
2020-01-28 12:31:28 +03:00
|
|
|
haskell-lsp,
|
2019-07-25 15:50:07 +03:00
|
|
|
haskell-lsp-types,
|
2020-03-23 14:21:23 +03:00
|
|
|
network-uri,
|
2019-07-25 15:50:07 +03:00
|
|
|
lens,
|
2020-10-02 11:18:28 +03:00
|
|
|
lsp-test >= 0.11.0.6 && < 0.12,
|
2020-06-22 13:47:45 +03:00
|
|
|
optparse-applicative,
|
|
|
|
process,
|
2020-01-28 12:31:28 +03:00
|
|
|
QuickCheck,
|
|
|
|
quickcheck-instances,
|
|
|
|
rope-utf16-splay,
|
2020-07-27 09:56:54 +03:00
|
|
|
safe,
|
2020-06-22 13:47:45 +03:00
|
|
|
safe-exceptions,
|
2020-03-24 14:39:53 +03:00
|
|
|
shake,
|
2019-07-25 15:50:07 +03:00
|
|
|
tasty,
|
2019-09-29 13:03:16 +03:00
|
|
|
tasty-expected-failure,
|
2020-01-28 12:31:28 +03:00
|
|
|
tasty-hunit,
|
|
|
|
tasty-quickcheck,
|
2020-03-16 11:07:50 +03:00
|
|
|
tasty-rerun,
|
2019-07-25 15:50:07 +03:00
|
|
|
text
|
2020-09-16 10:57:44 +03:00
|
|
|
if (impl(ghc >= 8.6))
|
|
|
|
build-depends:
|
|
|
|
record-dot-preprocessor,
|
|
|
|
record-hasfield
|
2020-06-22 13:47:45 +03:00
|
|
|
hs-source-dirs: test/cabal test/exe test/src bench/lib
|
2019-09-16 17:43:50 +03:00
|
|
|
include-dirs: include
|
2020-09-15 14:06:41 +03:00
|
|
|
ghc-options: -threaded -Wall -Wno-name-shadowing -O0
|
2019-07-25 15:50:07 +03:00
|
|
|
main-is: Main.hs
|
|
|
|
other-modules:
|
|
|
|
Development.IDE.Test
|
|
|
|
Development.IDE.Test.Runfiles
|
2020-06-22 13:47:45 +03:00
|
|
|
Experiments
|
2020-09-29 09:47:09 +03:00
|
|
|
Experiments.Types
|
2019-07-26 15:08:51 +03:00
|
|
|
default-extensions:
|
2020-01-21 11:05:58 +03:00
|
|
|
BangPatterns
|
|
|
|
DeriveFunctor
|
|
|
|
DeriveGeneric
|
2020-09-05 23:43:17 +03:00
|
|
|
FlexibleContexts
|
2020-01-21 11:05:58 +03:00
|
|
|
GeneralizedNewtypeDeriving
|
|
|
|
LambdaCase
|
|
|
|
NamedFieldPuns
|
2019-07-26 15:08:51 +03:00
|
|
|
OverloadedStrings
|
2020-01-21 11:05:58 +03:00
|
|
|
RecordWildCards
|
|
|
|
ScopedTypeVariables
|
|
|
|
StandaloneDeriving
|
|
|
|
TupleSections
|
|
|
|
TypeApplications
|
|
|
|
ViewPatterns
|
2020-06-03 17:35:08 +03:00
|
|
|
|
2020-06-29 12:00:53 +03:00
|
|
|
executable ghcide-bench
|
2020-06-03 17:35:08 +03:00
|
|
|
default-language: Haskell2010
|
|
|
|
build-tool-depends:
|
2020-06-29 12:00:53 +03:00
|
|
|
ghcide:ghcide
|
2020-06-03 17:35:08 +03:00
|
|
|
build-depends:
|
|
|
|
aeson,
|
|
|
|
base,
|
|
|
|
bytestring,
|
|
|
|
containers,
|
|
|
|
directory,
|
|
|
|
extra,
|
|
|
|
filepath,
|
|
|
|
ghcide,
|
2020-06-12 21:46:55 +03:00
|
|
|
lsp-test >= 0.11.0.2 && < 0.12,
|
2020-06-03 17:35:08 +03:00
|
|
|
optparse-applicative,
|
|
|
|
process,
|
2020-09-29 09:47:09 +03:00
|
|
|
safe-exceptions,
|
2020-10-11 22:10:15 +03:00
|
|
|
shake,
|
2020-09-29 09:47:09 +03:00
|
|
|
text
|
2020-06-22 13:47:45 +03:00
|
|
|
hs-source-dirs: bench/lib bench/exe
|
2020-06-03 17:35:08 +03:00
|
|
|
include-dirs: include
|
|
|
|
ghc-options: -threaded -Wall -Wno-name-shadowing
|
|
|
|
main-is: Main.hs
|
|
|
|
other-modules:
|
2020-06-22 13:47:45 +03:00
|
|
|
Experiments
|
2020-09-29 09:47:09 +03:00
|
|
|
Experiments.Types
|
2020-06-03 17:35:08 +03:00
|
|
|
default-extensions:
|
|
|
|
BangPatterns
|
|
|
|
DeriveFunctor
|
|
|
|
DeriveGeneric
|
2020-09-05 23:43:17 +03:00
|
|
|
FlexibleContexts
|
2020-06-03 17:35:08 +03:00
|
|
|
GeneralizedNewtypeDeriving
|
|
|
|
LambdaCase
|
|
|
|
NamedFieldPuns
|
|
|
|
OverloadedStrings
|
|
|
|
RecordWildCards
|
|
|
|
ScopedTypeVariables
|
|
|
|
StandaloneDeriving
|
|
|
|
TupleSections
|
|
|
|
TypeApplications
|
|
|
|
ViewPatterns
|