-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspecialist.cabal
154 lines (141 loc) · 3.58 KB
/
specialist.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
cabal-version: 3.4
name: specialist
version: 0.1.0
synopsis: GHC plugin that guides surgical specialization
description: This is a GHC plugin that finds and instruments overloaded
calls in the source program. The instrumentation, when
evaluated, prints data about the calls to the event log
such as the provenance information of all dictionary
arguments referenced in the call.
license: BSD-3-Clause
license-file: LICENSE
author: Finley McIlwaine
maintainer: [email protected]
category: GHC
build-type: Simple
extra-source-files: README.md
extra-doc-files: CHANGELOG.md
common common
ghc-options:
-Wall
-Wunused-packages
-Wprepositive-qualified-module
-Widentities
default-language:
GHC2021
default-extensions:
RecordWildCards
LambdaCase
build-depends:
base >= 4.20 && < 5
library
import: common
hs-source-dirs: src
exposed-modules:
GHC.Specialist
GHC.Specialist.Analysis
GHC.Specialist.Analysis.EventLog
GHC.Specialist.Analysis.Rank
GHC.Specialist.Analysis.SpecChains
GHC.Specialist.Analysis.Speedscope
GHC.Specialist.Plugin
GHC.Specialist.Plugin.Compat
GHC.Specialist.Plugin.Initialization
GHC.Specialist.Plugin.Instrumentation
GHC.Specialist.Plugin.Logging
GHC.Specialist.Plugin.Orphans
GHC.Specialist.Plugin.Types
build-depends:
, aeson
, containers
, filepath
, ghc
, ghc-events
, ghc-heap
, ghc-internal
, hs-speedscope
, mtl
, random
, text
ghc-options:
-- Make sure the location of the specialistWrapper is reported in the plugin
-- output, for clarity
-finfo-table-map
executable specialyze
import: common
hs-source-dirs: exe
main-is: Main.hs
other-modules:
Commands
Commands.DictProvenance
Commands.FindDuplicateSpecs
Commands.GroupNotes
build-depends:
, specialist
, containers
, dir-traverse
, optparse-applicative
, text
test-suite test-specialist
import: common
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
Test.Specialist
Test.Specialist.Types
Test.Specialist.UnitTests.T1
Test.Specialist.UnitTests.T2
Test.Specialist.UnitTests.T3
Test.Specialist.UnitTests.T4
Test.Specialist.Utils
build-depends:
specialist
, directory
, process
, tasty
, tasty-hunit
build-tool-depends:
, specialist:specialyze
, specialist:test-T1
, specialist:test-T2
, specialist:test-T3
, specialist:test-T4
ghc-options:
-threaded
common test-exe
import: common
build-depends:
specialist
ghc-options:
-fplugin=GHC.Specialist
-fplugin-opt=GHC.Specialist:f:1.0
-fplugin-opt=GHC.Specialist:v
-finfo-table-map
-fdistinct-constructor-tables
-dcore-lint
executable test-T1
import: test-exe
hs-source-dirs: test/unit-tests/T1
main-is: Main.hs
executable test-T2
import: test-exe
hs-source-dirs: test/unit-tests/T2
main-is: Main.hs
executable test-T3
import: test-exe
hs-source-dirs: test/unit-tests/T3
main-is: Main.hs
executable test-T4
import: test-exe
hs-source-dirs: test/unit-tests/T4
main-is: Main.hs
executable test-T5
import: test-exe
hs-source-dirs: test/unit-tests/T5
main-is: Main.hs
executable test-T6
import: test-exe
hs-source-dirs: test/unit-tests/T6
main-is: Main.hs
other-modules: Class