-
Notifications
You must be signed in to change notification settings - Fork 43
Expand file tree
/
Copy pathgranule.cabal
More file actions
386 lines (364 loc) · 9.88 KB
/
granule.cabal
File metadata and controls
386 lines (364 loc) · 9.88 KB
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
cabal-version: 3.4
name: granule
version: 0.9.7.0
synopsis: The Granule Language
description: A research language based on graded modal types
homepage: https://github.com/granule-project/granule#readme
bug-reports: https://github.com/granule-project/granule/issues
author: Dominic Orchard, Vilem-Benjamin Liepelt, Harley Eades III, Jack Hughes, Preston Keel, Danielle Marshall, Michael Vollmer
maintainer: Dominic Orchard, Vilem-Benjamin Liepelt, Harley Eades III, Jack Hughes, Preston Keel, Danielle Marshall, Michael Vollmer
category: Compiler
copyright: 2018-22 authors
license: BSD-3-Clause
build-type: Simple
tested-with:
, GHC == 9.4.8
source-repository head
type: git
location: https://github.com/granule-project/granule
common granule-default-lang
default-language: Haskell2010
default-extensions:
ImplicitParams
ViewPatterns
LambdaCase
TupleSections
NamedFieldPuns
OverloadedStrings
RecordWildCards
ScopedTypeVariables
FlexibleContexts
ConstraintKinds
common granule-dependencies
build-depends:
Glob ==0.10.2
, array ==0.5.4.0
, base ==4.17.2.1
, bifunctors ==5.5.15
, clock ==0.8.4
, containers ==0.6.7
, directory ==1.3.7.1
, filepath ==1.4.2.2
, mtl ==2.2.2
, prettyprinter ==1.7.1
, text ==2.0.2
, time ==1.12.2
, transformers ==0.5.6.2
common granule-ghc-warnings
ghc-options:
-Wall
-Werror
-Wcompat
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-Wno-unused-matches
-Wno-name-shadowing
-Wno-type-defaults
-fno-warn-unticked-promoted-constructors
-fno-warn-partial-type-signatures
-- Library Components
--
--
-- Dummy toplevel library component that is needed for external projects that depend on internal sublibraries.
library
library frontend
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
visibility: public
exposed-modules:
Data.Bifunctor.Foldable
Language.Granule.Checker.Checker
Language.Granule.Checker.Coeffects
Language.Granule.Checker.Constraints
Language.Granule.Checker.Constraints.SNatX
Language.Granule.Checker.Constraints.SynTree
Language.Granule.Checker.DataTypes
Language.Granule.Checker.Flatten
Language.Granule.Checker.Ghost
Language.Granule.Checker.LaTeX
Language.Granule.Checker.Monad
Language.Granule.Checker.Patterns
Language.Granule.Checker.Predicates
Language.Granule.Checker.Primitives
Language.Granule.Checker.Kinding
Language.Granule.Checker.Substitution
Language.Granule.Checker.SubstitutionContexts
Language.Granule.Checker.TypeAliases
Language.Granule.Checker.Types
Language.Granule.Checker.Variables
Language.Granule.Syntax.Def
Language.Granule.Syntax.Expr
Language.Granule.Syntax.Helpers
Language.Granule.Syntax.FirstParameter
Language.Granule.Syntax.Annotated
Language.Granule.Syntax.Identifiers
Language.Granule.Syntax.Lexer
Language.Granule.Syntax.Parser
Language.Granule.Syntax.Pattern
Language.Granule.Syntax.Pretty
Language.Granule.Syntax.Preprocessor
Language.Granule.Syntax.Preprocessor.Ascii
Language.Granule.Syntax.Preprocessor.Latex
Language.Granule.Syntax.Preprocessor.Markdown
Language.Granule.Syntax.Span
Language.Granule.Syntax.Type
Language.Granule.Synthesis.Builders
Language.Granule.Synthesis.Contexts
Language.Granule.Synthesis.Deriving
Language.Granule.Synthesis.DebugTree
Language.Granule.Synthesis.LinearHaskell
Language.Granule.Synthesis.Monad
Language.Granule.Synthesis.Splitting
Language.Granule.Synthesis.Common
Language.Granule.Synthesis.SynthLinearBase
Language.Granule.Synthesis.Synth
Language.Granule.Synthesis.RewriteHoles
Language.Granule.Context
Language.Granule.Utils
other-modules:
Language.Granule.Checker.CoeffectsTypeConverter
Language.Granule.Checker.Constraints.Compile
Language.Granule.Checker.Constraints.SFrac
Language.Granule.Checker.Constraints.SymbolicGrades
Language.Granule.Checker.Effects
Language.Granule.Checker.Exhaustivity
Language.Granule.Checker.NameClash
Language.Granule.Checker.Normalise
Language.Granule.Checker.Simplifier
Language.Granule.Syntax.SecondParameter
Language.Granule.Synthesis.Refactor
Text.Reprinter
hs-source-dirs:
frontend/src
build-tool-depends:
alex:alex
, happy:happy
build-depends:
, blaze-html
, control-monad-omega
, data-ordlist
, haskell-src-exts
, logict >=0.7.1.0
, monad-memo
, raw-strings-qq
, sbv ==9.2
, split
, syb >=0.6
, syz ==0.2.0.0
, text-replace ==0.1.0.3
library interpreter
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
visibility: public
exposed-modules:
Language.Granule.Interpreter
Language.Granule.Interpreter.Eval
Language.Granule.Interpreter.Desugar
other-modules:
Language.Granule.Doc
Paths_granule
autogen-modules:
Paths_granule
hs-source-dirs:
interpreter/src
build-depends:
, concurrent-extra
, extra
, gitrev
, granule:frontend
, granule:runtime
, logict >=0.7.1.0
, optparse-applicative >=0.18.0.0
library runtime
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
visibility: public
exposed-modules:
Language.Granule.Runtime
hs-source-dirs:
runtime/src
build-depends:
, criterion
, extra
, gitrev
, granule:frontend
, haskell-src-exts
, logict >=0.7.1.0
, optparse-applicative >=0.18.0.0
, silently
library compiler
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
visibility: public
exposed-modules:
Language.Granule.Compiler.Error
Language.Granule.Compiler.HSCodegen
Language.Granule.Compiler.Util
hs-source-dirs:
compiler/src
build-depends:
, criterion
, extra
, gitrev
, granule:frontend
, granule:runtime
, haskell-src-exts
, logict >=0.7.1.0
, optparse-applicative >=0.18.0.0
, silently
-- Test-suites
--
--
test-suite frontend-spec
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
type: exitcode-stdio-1.0
main-is: Spec.hs
other-modules:
Data.Bifunctor.FoldableSpec
Language.Granule.Checker.CheckerSpec
Language.Granule.Checker.MonadSpec
Language.Granule.Checker.SubstitutionsSpec
Language.Granule.Checker.KindSpec
Language.Granule.Checker.TypesSpec
Language.Granule.Syntax.ExprSpec
Language.Granule.Synthesis.CommonSpec
Language.Granule.Synthesis.SplittingSpec
Language.Granule.Synthesis.SynthSpec
hs-source-dirs:
frontend/tests/hspec
build-depends:
QuickCheck
, granule:frontend
, hspec
, syz
build-tool-depends:
hspec-discover:hspec-discover
test-suite gr-golden
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
type: exitcode-stdio-1.0
main-is: Golden.hs
hs-source-dirs:
interpreter/tests
build-depends:
Diff
, concurrent-extra
, extra
, gitrev
, granule:frontend
, granule:interpreter
, granule:runtime
, logict >=0.7.1.0
, optparse-applicative >=0.18.0.0
, strict
, tasty
, tasty-golden
-- Executables
--
--
executable gr
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
main-is: Main.hs
other-modules:
Language.Granule.Doc
Language.Granule.Interpreter.Desugar
Language.Granule.Interpreter.Eval
Language.Granule.Interpreter
Paths_granule
autogen-modules:
Paths_granule
hs-source-dirs:
interpreter/src
build-depends:
, concurrent-extra
, extra
, gitrev
, granule:frontend
, granule:interpreter
, granule:runtime
, logict >=0.7.1.0
, optparse-applicative >=0.18.0.0
executable grls
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
main-is: Main.hs
other-modules:
Language.Granule.Server
hs-source-dirs:
server/app
build-depends:
, data-default
, granule:frontend
, granule:interpreter
, lens
, lsp ==2.7.0.1
, split
executable grepl
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
main-is: Language/Granule/Main.hs
other-modules:
Language.Granule.Queue
Language.Granule.ReplError
Language.Granule.ReplParser
Paths_granule
autogen-modules:
Paths_granule
hs-source-dirs:
repl/app
build-depends:
, filemanip ==0.3.6.3
, granule:frontend
, granule:interpreter
, haskeline ==0.8.2
, parsec ==3.1.16.1
executable grc
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
main-is: Main.hs
other-modules:
Language.Granule.Compiler
Paths_granule
autogen-modules:
Paths_granule
hs-source-dirs:
compiler/app
build-depends:
, criterion
, extra
, gitrev
, granule:compiler
, granule:frontend
, granule:runtime
, haskell-src-exts
, logict >=0.7.1.0
, optparse-applicative >=0.18.0.0
, silently
executable grenchmark
import: granule-default-lang
import: granule-dependencies
import: granule-ghc-warnings
main-is: Main.hs
other-modules:
Language.Granule.Benchmarks
Language.Granule.StdError
hs-source-dirs:
benchmark/src
build-depends:
granule:frontend
, granule:interpreter
, process
, strict