1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 22:31:36 +03:00
Commit Graph

502 Commits

Author SHA1 Message Date
Rob Rix
3bafa9a8b3
Generalize runFile over the term type. 2019-07-29 13:21:29 -04:00
Rob Rix
4296244f9e
Merge branch 'generalize-analyses-over-the-term-type' into scope-graphs 2019-07-29 13:19:51 -04:00
Rob Rix
bd5aea62b3
Fix the doctests of the concrete analysis. 2019-07-29 13:04:15 -04:00
Rob Rix
0b86f913ee
Clean up some language extensions. 2019-07-29 12:59:29 -04:00
Rob Rix
e9853c1a3f
Avoid allocating a useless cell. 2019-07-29 12:58:20 -04:00
Rob Rix
2c28e536e9
🔥 the FrameId reader effect. 2019-07-29 12:57:44 -04:00
Rob Rix
15e5731d93
Generalize concrete over the term types. 2019-07-29 12:55:13 -04:00
Rob Rix
da0d780f81
Generalize runFile over the term type. 2019-07-29 12:54:01 -04:00
Rob Rix
d8175305da
Generalize addressStyle over the term type. 2019-07-29 12:38:10 -04:00
Rob Rix
bd8f0ca4c1
Generalize heapAddressGraph over the term type. 2019-07-29 12:37:54 -04:00
Rob Rix
a549039dd3
Generalize heapValueGraph over the term type. 2019-07-29 12:37:39 -04:00
Rob Rix
021350b6da
Generalize heapGraph over the term type. 2019-07-29 12:37:25 -04:00
Rob Rix
ea174b2144
Generalize runHeap over the term type. 2019-07-29 12:36:58 -04:00
Rob Rix
c3cf286d9d
Generalize EdgeType over the term type. 2019-07-29 12:36:44 -04:00
Rob Rix
1192971d38
Generalize concreteAnalysis over the term type. 2019-07-29 12:36:14 -04:00
Rob Rix
2dde20051e
Generalize lookupConcrete over the term type. 2019-07-29 12:35:59 -04:00
Rob Rix
2559f589a8
Generalize Heap over the term type. 2019-07-29 12:35:02 -04:00
Rob Rix
fde2a448d3
Abstract Concrete over the term type. 2019-07-29 12:34:04 -04:00
Rob Rix
4553d59faf
Generalize importGraph over the term type. 2019-07-29 12:31:52 -04:00
Rob Rix
b92611458e
Change the kind of the term field to *. 2019-07-29 12:30:38 -04:00
Rob Rix
8b8a33071e
Generalize runFile over the term type. 2019-07-29 12:28:18 -04:00
Rob Rix
e2875572b9
Generalize typecheckingFlowInsensitive over the term type. 2019-07-29 12:25:03 -04:00
Rob Rix
813cde359e
Reformat the signature for runFile to accommodate the evaluator. 2019-07-29 12:23:52 -04:00
Rob Rix
97ae6e9b21
Use a type synonym for types. 2019-07-29 12:23:07 -04:00
Rob Rix
6652520175
Reformat the signature for runFile. 2019-07-29 12:21:50 -04:00
Rob Rix
5c67ea0322
Reformat the signature for typecheckingFlowInsensitive. 2019-07-29 12:20:55 -04:00
Rob Rix
2666f6cbc8
Generalize runFile over the term type. 2019-07-29 12:20:25 -04:00
Rob Rix
99d9a8d94d
Parameterize runFile by the evaluator. 2019-07-29 12:19:10 -04:00
Rob Rix
7e7f33c6d1
Generalize importGraphAnalysis over the term type. 2019-07-29 12:15:22 -04:00
Rob Rix
e022b47eef
Reformat the signature for importGraph. 2019-07-29 12:14:31 -04:00
Rob Rix
3387eacf98
Abstract Value over the term type. 2019-07-29 12:14:07 -04:00
Rob Rix
54430ac56d
Abstract Semi over the term type. 2019-07-29 12:13:15 -04:00
Rob Rix
65e218417f
Import graphs don’t need to collect the set of addresses in scope when abstracting. 2019-07-29 12:11:54 -04:00
Rob Rix
9acaaaedc0
🔥 the parentAddr in ImportGraph. 2019-07-29 12:10:48 -04:00
Rob Rix
465319b8d4
Simplify deref for Typecheck & ImportGraph. 2019-07-29 12:08:16 -04:00
Rob Rix
104bdacaae
Generalize Analysis over the term type. 2019-07-29 12:03:12 -04:00
Rob Rix
c82623db36
Generalize cacheTerm over the term type. 2019-07-29 11:59:30 -04:00
Rob Rix
fdc20a4256
Generalize convergeTerm over the term type. 2019-07-29 11:58:44 -04:00
Rob Rix
05fa90ef84
Generalize the Cache type over the term type. 2019-07-29 11:58:02 -04:00
Rob Rix
7b6b6a4259
Generalize convergeTerm over the address type. 2019-07-29 11:54:57 -04:00
Rob Rix
56984fa7a6
Define Cache as a newtype. 2019-07-29 11:52:48 -04:00
Rob Rix
fcf654032c
Rename the name parameter to address. 2019-07-29 11:49:16 -04:00
Rob Rix
3119c222cb
Derive the Eq, Ord, & Show instances for Ann. 2019-07-29 11:29:47 -04:00
Rob Rix
5ec40693c3
Generalize the various example programs to arbitrary carriers for Core. 2019-07-29 11:28:30 -04:00
Rob Rix
604f1d97b7
Generalize the generators to arbitrary carriers for Core. 2019-07-29 11:24:31 -04:00
Rob Rix
4fdef93d72
Generalize the parser to arbitrary carriers for Core. 2019-07-29 11:24:22 -04:00
Rob Rix
e2db378be6
Fix the tests. 2019-07-29 11:18:19 -04:00
Rob Rix
e9b21f6ebf
Generate terms capable of annotation in the parser. 2019-07-29 11:18:15 -04:00
Rob Rix
01f1176348
Split out an Ann datatype representing locations. 2019-07-29 11:12:06 -04:00
Rob Rix
99a4f8ed5a
Write an empty scope graph into the heap during abstraction. 2019-07-26 15:45:52 -04:00
Rob Rix
16b1442b4b
Simplify deref slightly. 2019-07-26 15:35:43 -04:00
Rob Rix
0c106865f7
Record where names were bound. 2019-07-26 15:19:39 -04:00
Rob Rix
09f2362cd2
Abstract closures to their graphs. 2019-07-26 15:13:43 -04:00
Rob Rix
cb5b0fb2c4
Don’t allocate a pointless heap cell. 2019-07-25 13:28:02 -04:00
Rob Rix
b8f7bb06db
Don’t provide a current FrameId. 2019-07-25 13:11:07 -04:00
Rob Rix
3654aac2c8
🔥 the parent addr from the import & scope graph analyses. 2019-07-25 13:09:16 -04:00
Rob Rix
53e08b38ba
🔥 the specialization of String in the scope graph. 2019-07-25 13:03:05 -04:00
Rob Rix
f6cd84eba7
Merge branch 'sequence-values-in-the-abstract-domain' into scope-graphs 2019-07-25 12:57:07 -04:00
Rob Rix
0f34dcec45
Sequence values in the abstract domain. 2019-07-25 12:33:33 -04:00
Rob Rix
cd950fd6ec
Derive a Semigroup instance for Term Monotype a. 2019-07-25 12:33:13 -04:00
Rob Rix
7d9100f816
Derive a Semigroup instance for Concrete. 2019-07-25 12:33:00 -04:00
Rob Rix
fde3424c13
Dedent all the Analysis fields. 2019-07-25 12:32:47 -04:00
Rob Rix
057a4f8b5a
Copy in the import graph definition. 2019-07-25 09:31:36 -04:00
Rob Rix
5a40e01ff1
Derive Eq, Ord, & Show instances for Entry. 2019-07-25 09:30:15 -04:00
Rob Rix
8c59f9dc42
Only import the one symbol from Data.Text. 2019-07-25 09:30:02 -04:00
Rob Rix
455990dbc2
Change entrySymbol’s type to Text. 2019-07-24 08:07:35 -04:00
Rob Rix
a0bf65f43b
Move Edge into Concrete. 2019-07-23 16:11:04 -04:00
Rob Rix
7c24672921
Parse whitespace following string literals. 2019-07-23 15:53:18 -04:00
Rob Rix
41a31d1873
Simplify the projection rule. 2019-07-23 15:49:22 -04:00
Rob Rix
15430badec
Alignment. 2019-07-23 15:44:02 -04:00
Rob Rix
0254bc9895
Parse more escape sequences. 2019-07-23 15:43:25 -04:00
Rob Rix
f10cbb21b3
Generate string literals. 2019-07-23 15:43:11 -04:00
Rob Rix
3d65ae97ef
Sort the atoms. 2019-07-23 15:27:03 -04:00
Rob Rix
ac3f487703
Correct the precedence of load. 2019-07-23 15:24:19 -04:00
Rob Rix
3b6741456d
Rename edge to load. 2019-07-23 15:23:45 -04:00
Rob Rix
e4470bcbcc
Generate load instructions. 2019-07-23 15:23:26 -04:00
Rob Rix
0d530dc078
Sort the recursive generators. 2019-07-23 15:22:12 -04:00
Rob Rix
4bd2129511
Lower the precedence in lambda bodies. 2019-07-23 15:20:20 -04:00
Rob Rix
8e5c2163b8
Correct the precedence of recursive bindings. 2019-07-23 15:19:59 -04:00
Rob Rix
308066fbb1
Generate recursive bindings. 2019-07-23 15:18:04 -04:00
Rob Rix
e03236d301
Generate assignments. 2019-07-23 15:15:55 -04:00
Rob Rix
068941e3e1
Correct the precedence of if/then/else and lambda. 2019-07-23 15:12:41 -04:00
Rob Rix
9ccd11ef09
ifthenelse and lambda bind looser than assignment. 2019-07-23 15:10:51 -04:00
Rob Rix
08878f1a18
assign binds looser than application. 2019-07-23 15:07:21 -04:00
Rob Rix
59af553279
Recur via expr. 2019-07-23 15:05:46 -04:00
Rob Rix
d1671a6d7c
Rename prj to projection. 2019-07-23 15:02:24 -04:00
Rob Rix
b700740174
Split out a rule for application. 2019-07-23 15:02:05 -04:00
Rob Rix
b58ddb470b
Projections are lvalues. 2019-07-23 15:01:25 -04:00
Rob Rix
76eb3e2154
Pretty-print with mandatory precedence handling. 2019-07-23 15:00:32 -04:00
Rob Rix
5b682606bc
inParens wraps a Doc, not an action. 2019-07-23 12:34:10 -04:00
Rob Rix
99668a33a1
Don’t set the precedence recursively. 2019-07-23 12:31:35 -04:00
Rob Rix
edbea6991c
Indentation. 2019-07-23 12:27:24 -04:00
Rob Rix
56d40daef4
Rename with to withPrec. 2019-07-23 12:26:25 -04:00
Rob Rix
96127627f6
Define Prec as a newtype. 2019-07-23 12:24:45 -04:00
Rob Rix
3da182dcec
Comma-separate records. 2019-07-23 12:12:02 -04:00
Rob Rix
453b898581
Use colons to separate keys & values. 2019-07-23 12:10:24 -04:00
Rob Rix
47b43cf009
Don’t pad empty records. 2019-07-23 12:08:28 -04:00
Rob Rix
a96eadb620
Nest & align recursive bindings. 2019-07-23 12:07:08 -04:00
Rob Rix
b119712c53
Avoid redundant nesting of statements. 2019-07-23 12:03:19 -04:00
Rob Rix
6b250c723e
Pretty-print variables early. 2019-07-23 11:46:06 -04:00