1
1
mirror of https://github.com/github/semantic.git synced 2024-12-29 01:42:43 +03:00
Commit Graph

293 Commits

Author SHA1 Message Date
Patrick Thomson
1d9b5d29e6 Depend on it in semantic-analysis. 2019-12-18 11:23:19 -05:00
Rob Rix
cfc8bdfe38
🔥 Ignored. 2019-12-18 10:54:54 -05:00
Rob Rix
6485f858ed
Move Named & Ignored into Analysis.Name. 2019-12-18 10:51:02 -05:00
Rob Rix
667f894ec3
Merge branch 'ghcide-is-painless' into analysis-effects 2019-12-18 09:49:08 -05:00
Patrick Thomson
6bebd84deb Officially require GHC 8.8. 2019-12-13 15:48:49 -05:00
Patrick Thomson
77a1b4697e More import fixes. 2019-12-13 11:47:34 -05:00
Rob Rix
aac1c92dc9
🔥 string/asString from Analysis. 2019-12-13 11:46:04 -05:00
Rob Rix
0fc9f5dc6d
🔥 unit from Analysis. 2019-12-13 11:44:57 -05:00
Rob Rix
a8d670cd19
Define smart constructors for concretization at specific types. 2019-12-13 11:42:58 -05:00
Rob Rix
9a3e06b070
Define smart constructors for unit, bool, & string construction. 2019-12-13 11:36:49 -05:00
Rob Rix
a468a66e9e
🔥 bool/asBool. 2019-12-13 11:33:58 -05:00
Patrick Thomson
dc69714053 Merge remote-tracking branch 'origin/master' into glorious-ghc-upgrade-8.8 2019-12-13 11:23:36 -05:00
Rob Rix
34a0afbfba
Merge branch 'fused-effects-one-dot-zero' into analysis-effects 2019-12-12 12:53:27 -05:00
Rob Rix
b726bf8702
🔥 ConstraintKinds. 2019-12-12 11:41:06 -05:00
Rob Rix
e0c47f11bc
🔥 an unnecessary Effect instance for Monotype. 2019-12-12 11:32:01 -05:00
Rob Rix
5ae742cf1c
🔥 unnecessary scoped type variables. 2019-12-12 11:31:24 -05:00
Rob Rix
22b6c3bab3
🔥 some redundant language extensions. 2019-12-12 11:31:15 -05:00
Patrick Thomson
68ab3cbb97 semantic:exe now compiles 2019-12-10 13:32:56 -05:00
Patrick Thomson
0ceba4a160 Ensure Readline is an HFunctor. 2019-11-08 10:24:54 -05:00
Patrick Thomson
f1a5f0439d Fix state type in concrete analysis. 2019-11-08 10:24:18 -05:00
Patrick Thomson
df98749bd0 Fix Analysis.ImportGraph. 2019-11-08 10:23:39 -05:00
Patrick Thomson
e6bf975ee8 Fix state type in runFile. 2019-11-08 10:22:58 -05:00
Patrick Thomson
cac8047ee0 Fix Typecheck analysis.
Had to write this RightModule instance by hand. It typechecks, so I
guess it works?
2019-11-08 10:21:48 -05:00
Patrick Thomson
3feec0e5ee Correct Algebra instance for FailC. 2019-11-08 10:16:34 -05:00
Patrick Thomson
e041d2440d 🔥 state types in FlowInsensitive. 2019-11-08 10:16:20 -05:00
Patrick Thomson
35ea116f00 Bump various FE dependencies from 0.5 to 1.0. 2019-11-07 15:48:57 -05:00
Rob Rix
99184605bd
Run the domain effect during convergence. 2019-11-07 13:11:38 -05:00
Rob Rix
38e42c0cd9
Align. 2019-11-07 12:49:05 -05:00
Rob Rix
ee8017d8dd
Define a Domain carrier for typechecking. 2019-11-07 11:44:42 -05:00
Rob Rix
27559f8f0e
Specialize the Domain effect to Intro. 2019-11-07 10:53:49 -05:00
Rob Rix
4185f213e3
Remove everything but the primitives from Intro. 2019-11-07 10:37:34 -05:00
Rob Rix
4a0aa126fd
Spacing. 2019-11-06 12:48:09 -05:00
Rob Rix
fd19464be5
Rename the parameters to Domain. 2019-11-06 12:47:40 -05:00
Rob Rix
445737a92c
🔥 the old Domain effect. 2019-11-06 12:46:39 -05:00
Rob Rix
34f32970cd
Define a smart constructor for concretization. 2019-11-06 12:44:52 -05:00
Rob Rix
0dd17dcc36
Define a smart constructor for abstracting domain values. 2019-11-06 12:44:03 -05:00
Rob Rix
d4a1080563
Align. 2019-11-06 12:40:50 -05:00
Rob Rix
180af3f1dc
Define an Effect instance for Domain. 2019-11-06 12:39:44 -05:00
Rob Rix
6e1503c1ef
Define an HFunctor instance for Domain. 2019-11-06 12:39:39 -05:00
Rob Rix
7b9e1c0d88
Derive a Generic1 instance for Domain. 2019-11-06 12:39:05 -05:00
Rob Rix
e8a4749653
Stub in a Domain effect with abstraction & concretization operations. 2019-11-06 12:37:58 -05:00
Rob Rix
374f90dc7e
Re-export some stuff. 2019-11-06 12:35:07 -05:00
Rob Rix
903e73cba8
Stub in a module for the Domain effect. 2019-11-06 12:33:15 -05:00
Rob Rix
812a123d8a
Sort Name down. 2019-11-06 12:32:39 -05:00
Rob Rix
ef44b29574
Define a constructor for Lam using Var. 2019-11-06 11:55:28 -05:00
Rob Rix
14ff797594
Define an eliminator for lambdas using Fin. 2019-11-06 11:51:52 -05:00
Rob Rix
f8b1b28a2c
Move lamFin under unlam. 2019-11-06 11:47:40 -05:00
Rob Rix
daa24d1e31
🔥 a redundant handler. 2019-11-05 12:09:19 -05:00
Rob Rix
7f6680d825
Specialize the Env effect to Name. 2019-11-05 12:08:13 -05:00
Rob Rix
23c65d5eb4
Specialize Domain to Name. 2019-11-05 12:02:43 -05:00
Rob Rix
02ae8de2ba
Specialize Analysis to Name. 2019-11-05 12:02:39 -05:00
Rob Rix
f8c26e72d3
🔥 FrameId. 2019-11-05 12:00:32 -05:00
Rob Rix
56b30e4793
🔥 FrameId. 2019-11-05 11:59:59 -05:00
Rob Rix
e9b6658b5e
Specialize flow-insensitive caching to Name addresses. 2019-11-05 11:59:23 -05:00
Rob Rix
1b61ce56ec
Sort explicit quantifiers. 2019-11-05 11:56:22 -05:00
Rob Rix
b33c694094
Sort constraints. 2019-11-05 11:55:54 -05:00
Rob Rix
d06d73c81b
Rename a bunch of type parameters. 2019-11-05 11:55:42 -05:00
Rob Rix
f03de00aec
🔥 ScopedTypeVariables. 2019-11-05 11:54:41 -05:00
Rob Rix
611ae5fb0b
🔥 quantifiers. 2019-11-05 11:53:46 -05:00
Rob Rix
6191f2e1be
Specialize the scope graph analysis to Name. 2019-11-05 11:52:21 -05:00
Rob Rix
4962104008
Specialize Value to Name. 2019-11-05 11:50:32 -05:00
Rob Rix
a3775a1248
Specialize the import graph analysis to Name. 2019-11-05 11:48:42 -05:00
Rob Rix
630759d1d7
Specialize Monotype to Name. 2019-11-05 11:47:01 -05:00
Rob Rix
18bc19a04e
Specialize Type, Constraint, Solution, & Substitution to Name. 2019-11-05 11:45:59 -05:00
Rob Rix
814f6fe8cf
🔥 quantifiers. 2019-11-05 11:38:24 -05:00
Rob Rix
50e123a110
Specialize the typechecking analysis to Name. 2019-11-05 11:37:47 -05:00
Rob Rix
71e4981805
Specialize EdgeType to Name. 2019-11-05 11:34:00 -05:00
Rob Rix
535ec0576a
🔥 some quantifiers. 2019-11-05 11:33:33 -05:00
Rob Rix
2f676e892e
Specialize the Env synonym to Name. 2019-11-05 11:32:55 -05:00
Rob Rix
398d377e35
Specialize Concrete to Name. 2019-11-05 11:32:22 -05:00
Rob Rix
29b117033b
Move Edge down. 2019-11-05 11:29:05 -05:00
Rob Rix
924e0d0129
🔥 Frame. 2019-11-05 11:28:18 -05:00
Rob Rix
98acd3adb7
Specialize concrete analysis to Name. 2019-11-05 11:26:01 -05:00
Rob Rix
9672556476
Move Name into its own module. 2019-11-05 11:13:15 -05:00
Rob Rix
9f26a4c13e
Stub in a module for Name. 2019-11-05 11:11:39 -05:00
Rob Rix
cd5165ce00
Strengthen to Fin without Var. 2019-11-04 16:36:31 -05:00
Rob Rix
4811adddae
Define a smart constructor for Lam binding with Fin. 2019-11-04 16:29:08 -05:00
Rob Rix
ea2b679049
Export Name. 2019-11-04 16:07:02 -05:00
Rob Rix
23d1c84342
Define a RightModule instance for Intro. 2019-11-04 16:03:14 -05:00
Rob Rix
20591377da
Define an HFunctor instance for Intro. 2019-11-04 16:02:19 -05:00
Rob Rix
a5e1d5e0cb
Derive a Generic1 instance for Intro. 2019-11-04 16:02:12 -05:00
Rob Rix
4b0af27dde
Rename Domain to Intro. 2019-11-04 15:53:54 -05:00
Rob Rix
e5bfa87d86
Derive Foldable, Functor, & Traversable instances for Domain. 2019-11-04 15:52:40 -05:00
Rob Rix
3bafe21a23
Define an eliminator for Lam. 2019-11-04 15:38:27 -05:00
Rob Rix
2d362d9874
Define a smart constructor for multiple lambdas. 2019-11-04 15:36:55 -05:00
Rob Rix
9822b4eed7
Define a smart constructor for Lam. 2019-11-04 14:48:59 -05:00
Rob Rix
ca3bb15353
Define a smart constructor for Record. 2019-11-04 14:47:43 -05:00
Rob Rix
c9161d51d1
Define a smart constructor for String. 2019-11-04 14:47:19 -05:00
Rob Rix
6b6581dbbe
Define a smart constructor for Bool. 2019-11-04 14:46:41 -05:00
Rob Rix
722e40571c
Define a smart constructor for Unit. 2019-11-04 14:46:14 -05:00
Rob Rix
20555fcf84
Lam’s name is in Maybe. 2019-11-04 14:44:21 -05:00
Rob Rix
99a84e5646
Specialize Domain to Name. 2019-11-04 14:43:15 -05:00
Rob Rix
7208186efa
Copy Name in from Core.Name. 2019-11-04 14:40:18 -05:00
Rob Rix
24f6159acc
Domain is scope-safe. 2019-11-04 14:35:24 -05:00
Rob Rix
40d3e5ece6
Rename Arr to :->. 2019-11-04 14:33:06 -05:00
Rob Rix
3721ccbace
Add Lam to Domain. 2019-11-04 14:30:17 -05:00
Rob Rix
e4caca6f19
Add Record to Domain. 2019-11-04 14:27:12 -05:00
Rob Rix
d4190ddb17
Derive some instances for Domain. 2019-11-04 14:24:05 -05:00
Rob Rix
664c7301db
Stub in a Domain datatype modelling the basic kinds of values. 2019-11-04 14:22:48 -05:00
Rob Rix
1098d95cd8
Stub in a module for modelling the concrete domain. 2019-11-04 14:20:56 -05:00
Rob Rix
a55972ef88
Remove the heap fields from Analysis. 2019-11-04 14:04:03 -05:00
Rob Rix
a667c656a1
Reformat the signature for concreteAnalysis. 2019-11-04 14:03:31 -05:00
Rob Rix
9303d7e7ca
Use the Heap effect to define the scope graph analysis. 2019-11-04 13:57:16 -05:00
Rob Rix
3e987cc7e2
Sort constraints. 2019-11-04 13:56:06 -05:00
Rob Rix
42b7e77e84
Use the Heap effect to define the import graph analysis. 2019-11-04 13:54:48 -05:00
Rob Rix
641b989983
Revert "Export runNonDetM."
This reverts commit 309b5fd1bb.
2019-11-04 13:52:42 -05:00
Rob Rix
d5b180b465
Revert "Run flow-insensitive analyses in an Alternative context."
This reverts commit 6199c15436.
2019-11-04 13:52:28 -05:00
Rob Rix
ca50eb2fdb
Run the Heap effect inside convergeTerm. 2019-11-04 13:51:46 -05:00
Rob Rix
29d6654f1a
Use the Heap effect in Typecheck. 2019-11-04 13:50:04 -05:00
Rob Rix
6199c15436
Run flow-insensitive analyses in an Alternative context. 2019-11-04 13:47:59 -05:00
Rob Rix
309b5fd1bb
Export runNonDetM. 2019-11-04 13:46:57 -05:00
Rob Rix
ec53cd91d6
🔥 some redundant qualifiers. 2019-11-04 13:38:12 -05:00
Rob Rix
8127690358
Only import the effect. 2019-11-04 13:36:03 -05:00
Rob Rix
9327861790
Use the precise heap carrier to implement the Concrete analysis. 2019-11-04 13:35:52 -05:00
Rob Rix
327208eb15
Surface the precise heap through a State effect. 2019-11-04 13:35:07 -05:00
Rob Rix
8f50312be3
Define a Carrier instance for HeapC. 2019-11-04 13:15:49 -05:00
Rob Rix
a17a6825d3
Define a monovariant Heap carrier. 2019-11-04 12:52:03 -05:00
Rob Rix
1b8dafcf33
Re-export the heap effect. 2019-11-04 12:48:55 -05:00
Rob Rix
aaa4f6585f
Stub in a module for a monovariant heap carrier. 2019-11-04 12:48:11 -05:00
Rob Rix
08e1061b90
Define a Carrier instance for Heap. 2019-11-04 12:47:20 -05:00
Rob Rix
c3327fa1e5
HeapC wraps a state effect. 2019-11-04 12:34:38 -05:00
Rob Rix
5b8364cd51
Stub in a Heap carrier. 2019-11-04 12:32:01 -05:00
Rob Rix
b2a329c684
Re-export the Heap effect. 2019-11-04 12:29:54 -05:00
Rob Rix
05de03e2e6
Stub in a module for a precise heap carrier. 2019-11-04 12:29:21 -05:00
Rob Rix
e99299811d
Re-export Carrier & run from the effect modules. 2019-11-04 12:28:33 -05:00
Rob Rix
250237024e
Section headings. 2019-11-04 12:27:24 -05:00
Rob Rix
ab5b566bcb
Define a smart constructor for Assign. 2019-11-04 12:16:28 -05:00
Rob Rix
b1c2f261e9
Define a smart constructor for Deref. 2019-11-04 12:16:00 -05:00
Rob Rix
d23f34b8c4
Move the Heap effect to its own module. 2019-11-04 12:14:38 -05:00
Rob Rix
6359d96a7c
Stub in a module for the Heap effect. 2019-11-04 12:13:44 -05:00
Rob Rix
961bf622ca
🔥 the Analysis env fields. 2019-11-04 12:12:59 -05:00
Rob Rix
17da79fe24
Reformat the importGraphAnalysis signature. 2019-11-04 12:10:54 -05:00
Rob Rix
d70a169e93
Reorder the contexts for ease of type application. 2019-11-04 12:09:01 -05:00
Rob Rix
eb591f94df
Use the Env effect to define the scope graph analysis. 2019-11-01 15:23:21 -04:00
Rob Rix
0f7be2084d
Use the Env effect to define the import graph analysis. 2019-11-01 15:23:13 -04:00
Rob Rix
9e472c5956
Use the Env effect to define the Analysis. 2019-11-01 15:20:58 -04:00
Rob Rix
5fef3262e5
Move the monovariant Env carrier into its own module. 2019-11-01 15:19:01 -04:00
Rob Rix
778f84bb12
Define a module for the monovariant Env carrier. 2019-11-01 15:13:15 -04:00
Rob Rix
e58db3da31
Use the env effect in the concrete analysis. 2019-11-01 15:12:36 -04:00
Rob Rix
06ea57e167
Move the precise env carrier to its own module. 2019-11-01 15:04:22 -04:00
Rob Rix
d8955fdb20
Stub in a module for the precise Env carrier. 2019-11-01 15:00:03 -04:00
Rob Rix
6305e661c4
Run the env effect. 2019-11-01 14:59:04 -04:00
Rob Rix
7809bd2e8d
Move Env into its own module. 2019-11-01 14:58:33 -04:00
Rob Rix
131c804184
Stub in a module for the Env effect. 2019-11-01 14:56:43 -04:00
Rob Rix
ec94b7de1a
Define a carrier for monovariant Env. 2019-11-01 14:55:48 -04:00
Rob Rix
f0739bb151
Run the env carrier. 2019-11-01 14:52:21 -04:00
Rob Rix
4f44170281
Derive a MonadFail instance for EnvC. 2019-11-01 14:52:17 -04:00
Rob Rix
3aa3cb5005
Define a concrete Env carrier. 2019-11-01 14:51:24 -04:00
Rob Rix
2ef1a7aa12
Qualify the import of Analysis. 2019-11-01 14:46:55 -04:00
Rob Rix
2eb80687ea
Define a smart constructor for Lookup. 2019-11-01 14:43:04 -04:00