Rob Rix
45de2f56a6
Rename ControlIOC to UnliftIOToMonadException.
2019-10-10 16:08:43 -04:00
Rob Rix
ed6c7507fb
Render fitted to the window.
2019-10-10 16:05:25 -04:00
Rob Rix
269e8700d9
Render colour annotations.
2019-10-10 16:01:02 -04:00
Rob Rix
4044575648
🔥 the IsString constraint.
2019-10-10 15:58:23 -04:00
Rob Rix
c2908ed497
🔥 a redundant language extension.
2019-10-10 15:56:16 -04:00
Rob Rix
742db3d17e
🔥 the Carrier instance.
2019-10-10 15:54:54 -04:00
Rob Rix
81d1a1117e
Internalize ControlIOC.
2019-10-10 15:54:29 -04:00
Rob Rix
beae029a38
🔥 a redundant import.
2019-10-10 15:53:06 -04:00
Rob Rix
d59ba40235
🔥 a redundant constraint.
2019-10-10 15:50:59 -04:00
Rob Rix
7dffdd2407
Derive MonadFix instances.
2019-10-10 15:48:15 -04:00
Rob Rix
c6b12ef710
Simplify runControlIO to use MonadUnliftIO.
2019-10-10 15:47:43 -04:00
Rob Rix
c2954ae963
Re-export runM.
2019-10-10 15:40:31 -04:00
Rob Rix
de154040c9
Line is an implementation detail.
2019-10-10 15:40:01 -04:00
Rob Rix
5f7ecbdd04
Int, not Int64.
2019-10-10 15:38:42 -04:00
Rob Rix
c2764b76b6
🔥 AskLine.
2019-10-10 15:38:17 -04:00
Rob Rix
859f856e09
Extract the Readline carrier into its own module.
2019-10-10 15:35:58 -04:00
Rob Rix
ee0ee8d2d3
Stub in a module for the Readline carrier.
2019-10-10 15:26:21 -04:00
Rob Rix
2c120879bb
Replace Core.Scope with Syntax.Scope.
2019-10-10 15:24:52 -04:00
Rob Rix
131bec8ed3
Replace Prec with Syntax.Pretty.Prec.
2019-10-10 15:20:27 -04:00
Rob Rix
5b378da075
Replace Core.Stack with Syntax.Stack.
2019-10-10 15:19:04 -04:00
Rob Rix
7df71e359e
Replace Core.Term with Syntax.Term.
2019-10-10 15:17:22 -04:00
Rob Rix
0f8fa337e4
Replace Control.Monad.Module with Syntax.Module.
2019-10-10 15:14:37 -04:00
Rob Rix
cde9635319
Rename the Term constructor to Alg.
2019-10-10 15:12:44 -04:00
Rob Rix
d7dc440a30
Move all the Data.* modules into Core.* instead.
2019-10-10 15:07:49 -04:00
Rob Rix
3039b1d53f
Rename the test component to test.
2019-10-10 14:51:40 -04:00
Rob Rix
304df23c3a
Reformat the tested-with field.
2019-10-10 14:48:23 -04:00
Rob Rix
93ea54c5a5
Fix some redundant imports.
2019-10-10 14:47:29 -04:00
Rob Rix
c688990e25
Extract the common fields of the components.
2019-10-10 14:45:40 -04:00
Rob Rix
7f5a52c349
Reformat the build-depends field.
2019-10-10 14:43:01 -04:00
Rob Rix
1c1d955553
Reformat the exposed-modules field.
2019-10-10 14:42:41 -04:00
Rob Rix
7e5f477353
Mention v2- instead of new-.
2019-10-10 14:42:19 -04:00
Rob Rix
bb81dd0ee1
Drop an obsolete stripAnnotations.
2019-10-10 14:11:34 -04:00
Rob Rix
a1a6270c01
🔥 Path annotations.
2019-10-10 14:10:35 -04:00
Rob Rix
61a2cd396b
🔥 some Path annotations.
2019-10-10 14:09:30 -04:00
Rob Rix
c19a373bf3
Fix the tests.
2019-10-10 14:06:47 -04:00
Rob Rix
1e326d7fb8
Don’t re-export Trifecta.
2019-10-10 14:05:59 -04:00
Rob Rix
6681639dd5
Rearrange stripAnnotations’ type parameters.
2019-10-10 14:05:50 -04:00
Rob Rix
8880278961
🔥 Loc.
2019-10-10 13:56:22 -04:00
Rob Rix
20c6d12b03
🔥 a redundant language extension.
2019-10-10 13:55:52 -04:00
Rob Rix
31b1eae78e
🔥 interactive.
2019-10-10 13:55:13 -04:00
Rob Rix
177fb8d05c
Correct a doctest.
2019-10-10 13:52:07 -04:00
Rob Rix
5433cad022
Store local Refs.
2019-10-10 13:51:18 -04:00
Rob Rix
f15feb0ca3
🔥 askLoc.
2019-10-10 13:49:36 -04:00
Rob Rix
ef36ded16c
Inline the Loc into Ref.
2019-10-10 13:48:39 -04:00
Rob Rix
e2092e8a52
Inline the Loc into Decl.
2019-10-10 13:47:12 -04:00
Rob Rix
5b4a1d3d9d
Inline the Loc into Concrete.
2019-10-10 13:44:45 -04:00
Rob Rix
5dd2b1185d
Inline the Loc into Semi.
2019-10-10 13:44:00 -04:00
Rob Rix
e949f88517
🔥 fileLoc.
2019-10-10 13:41:55 -04:00
Rob Rix
4ca2990346
Revert "Rename Control.Carrier.Fail.WithLoc to .WithFile."
...
This reverts commit 4c58f0877e
.
2019-10-10 13:41:17 -04:00
Rob Rix
c414161679
Revert "Return the message in a File."
...
This reverts commit 1ec98e9c05
.
2019-10-10 13:41:14 -04:00
Rob Rix
1ec98e9c05
Return the message in a File.
2019-10-10 13:40:49 -04:00
Rob Rix
4c58f0877e
Rename Control.Carrier.Fail.WithLoc to .WithFile.
2019-10-10 13:38:56 -04:00
Rob Rix
6a0be9cf09
Split up Loc annotations.
2019-10-10 13:36:58 -04:00
Rob Rix
200c3edf77
Evaluate doubly-annotated terms.
2019-10-10 13:30:01 -04:00
Rob Rix
dfceb329f9
Split Loc annotations into separate Path & Span readers.
2019-10-10 13:26:09 -04:00
Rob Rix
c97c8c7e12
Inline Loc into File.
2019-10-10 13:12:32 -04:00
Rob Rix
d044ea2fc4
Add a newtype wrapper around Path.
2019-10-10 13:08:14 -04:00
Rob Rix
2be7c29dad
Parameterize Ann with the annotation type.
2019-10-10 13:06:02 -04:00
Patrick Thomson
ae46a7b105
Make Data.Name.Name a newtype rather than a synonym.
...
The fact that `Name` was a simple alias for `Text` was creeping into
the error messages I'm seeing in `semantic-python`, which was a bit of
a buzzkill. This remedies that.
2019-10-07 17:45:53 -04:00
Rob Rix
16b475c57f
Rename FailWithLocC to FailC.
2019-10-07 17:26:37 -04:00
Rob Rix
1391e75a14
Move FailWithLocC into its own module.
2019-10-07 17:25:11 -04:00
Rob Rix
89e0185371
Stub in a module for FailWithLoc.
2019-10-07 17:21:23 -04:00
Rob Rix
a93327f46d
🔥 emptySpan.
2019-10-07 17:19:16 -04:00
Rob Rix
36eb0df4a9
Don’t use emptySpan in the doctests.
2019-10-07 17:18:53 -04:00
Rob Rix
d70f95fa56
Don’t re-export Span/Pos.
2019-10-07 17:18:18 -04:00
Rob Rix
8f11c4dae3
🔥 some commented-out fields.
2019-10-07 17:16:37 -04:00
Rob Rix
0b642f579d
Use semantic-source’s definition of Span.
2019-10-07 17:16:01 -04:00
Rob Rix
b082341704
Depend on semantic-source.
2019-10-07 17:14:32 -04:00
Rob Rix
03b12f2900
Define as a newtype wrapper around Text.
2019-10-07 17:10:24 -04:00
Rob Rix
d59b7cc796
Fix Analysis.Concrete.
2019-10-04 18:34:01 -04:00
Rob Rix
376d1ef7bc
Fix Analysis.ImportGraph.
2019-10-04 18:32:21 -04:00
Rob Rix
6b9e765528
Fix Analysis.ScopeGraph.
2019-10-04 18:31:10 -04:00
Rob Rix
0e79014992
Fix Analysis.Typecheck.
2019-10-04 18:29:57 -04:00
Rob Rix
2c4d23dcb6
Fix Analysis.Eval.
2019-10-04 18:27:53 -04:00
Rob Rix
09ec150aea
Fix the core parser.
2019-10-04 18:26:56 -04:00
Rob Rix
60fff8d9a9
Fix constraints.
2019-10-04 18:25:56 -04:00
Rob Rix
171bafc69e
Define Project locally to Data.Core for now.
2019-10-04 18:25:47 -04:00
Rob Rix
a7700826af
Fix imports & instances.
2019-10-04 18:25:29 -04:00
Rob Rix
fdb983a7b5
Fix imports.
2019-10-04 18:25:18 -04:00
Rob Rix
13d8eca026
Update the flow-insensitive analysis.
2019-10-04 18:25:02 -04:00
Rob Rix
e254bcbea4
Remove redundant definitions.
2019-10-04 18:24:46 -04:00
Rob Rix
3a43887e30
Move the Readline carrier into its own module.
2019-10-04 18:24:35 -04:00
Rob Rix
b534f7cd84
Stub in a module for the haskeline-based Readline carrier.
2019-10-04 17:52:59 -04:00
Patrick Thomson
375c975338
Use compileCC to build a record of toplevel bindings.
2019-09-23 11:56:40 -04:00
Rob Rix
7d1567e70a
🔥 a bunch of redundant hidden imports.
2019-09-20 16:45:12 -04:00
Patrick Thomson
d9f88fc046
Add a CHECK-TREE directive and simplify esoteric jq tests.
...
Due to the problems outlined in #245 , the tests for return statements
were complicated and not testing useful properties. This patch adds a
new `CHECK-TREE` directive which lets you embed a Core expression
as a string, which is parsed and then compared against the result of
compiling the containing module.
2019-09-18 18:07:43 -04:00
Patrick Thomson
da5bb84b05
Remove tree-sitter dependency from semantic-core.
2019-09-18 13:49:04 -04:00
Patrick Thomson
302add6c5e
Define annWith with annAt.
2019-09-18 13:43:36 -04:00
Patrick Thomson
962cd5d5de
Restore spacing.
2019-09-18 13:43:31 -04:00
Patrick Thomson
4d21791ae4
Add Data.Core.annAt.
2019-09-18 11:51:31 -04:00
Patrick Thomson
60fa4c82ab
Add Data.Loc.fromTSSpan.
...
We'll probably change this so that Unmarshal can do this for us, but
this implementation will suffice for now.
2019-09-18 11:50:53 -04:00
Patrick Thomson
1c5ac83791
Corral orphan instances.
2019-08-27 11:27:53 -04:00
Patrick Thomson
811f693051
Use Analysis.ScopeGraph instead of my bad reimplementation
2019-08-16 15:54:17 -04:00
Patrick Thomson
90dd0b4d33
Trying to bring up this test harness
2019-08-16 12:34:56 -04:00
Rob Rix
d3726fa9e2
Merge branch 'scope-graphs' into re-name
2019-08-06 15:08:56 -04:00
Rob Rix
0515d7c11d
Let-bind the function extending each value in the cell.
2019-08-06 15:05:15 -04:00
Rob Rix
c30e5ff473
Merge branch 'master' into scope-graphs
2019-08-06 14:55:39 -04:00
Rob Rix
8ad510d274
Merge branch 'master' into generalize-analyses-over-the-term-type
2019-08-06 14:38:30 -04:00
Rob Rix
f0ab3f1c91
Merge branch 'master' into factor-annotations-out-of-core
2019-08-06 14:07:22 -04:00
Rob Rix
c2e620ac6f
Haddock doesn’t like this.
2019-08-06 13:52:32 -04:00
Rob Rix
8d08b1a26a
Merge branch 'master' into sequence-values-in-the-abstract-domain
2019-08-06 13:45:57 -04:00
Rob Rix
d600246663
📝 the Semigroup instance for Concrete.
2019-08-06 13:44:21 -04:00
Rob Rix
82cb7e49b0
📝 the Semigroup instance for Term Monotype a.
2019-08-06 13:43:37 -04:00
Rob Rix
559a7aa59c
📝 the Semigroup use.
2019-08-06 13:41:45 -04:00
Rob Rix
dbf894163a
Merge branch 'master' into sequence-values-in-the-abstract-domain
2019-08-06 13:37:20 -04:00
Rob Rix
5d47b21977
Merge branch 'master' into module-laws
2019-08-06 13:34:36 -04:00
Rob Rix
372ed98b5e
Avoid rolling our own string literal parser.
...
🎩 @patrickt .
2019-08-06 12:25:05 -04:00
Rob Rix
78bd32e0b0
Don’t prefix :<-.
2019-08-06 12:23:01 -04:00
Rob Rix
b80dd5381a
Pull the rhs into a where clause.
2019-08-06 12:18:34 -04:00
Rob Rix
28404ae11e
foldrWithKey.
...
🎩 @patrickt .
2019-08-06 12:12:11 -04:00
Rob Rix
dd6d9a0209
Type application.
2019-08-06 12:07:01 -04:00
Rob Rix
0d2f05a8c7
📝 the parameters to unprefixEither.
2019-08-06 12:05:22 -04:00
Rob Rix
7c686d1ccb
📝 unprefixEither.
2019-08-06 12:04:22 -04:00
Rob Rix
eb2ede6d1d
Subterm.
2019-08-06 12:02:47 -04:00
Rob Rix
e2ec37ebdb
📝 unprefix’s parameters.
2019-08-06 12:01:30 -04:00
Rob Rix
ab07e5a0d6
📝 unprefix’s purpose.
2019-08-06 11:59:20 -04:00
Rob Rix
7b0a4155da
📝 unprefix.
2019-08-06 11:57:10 -04:00
Rob Rix
93eba20619
Rename un/unEither to unprefix/unprefixEither.
2019-08-06 11:55:43 -04:00
Rob Rix
93eba1d946
📝 the practical takeaway.
2019-08-06 11:47:35 -04:00
Rob Rix
c09e465efb
📝 RightModule and its laws.
2019-08-06 11:40:15 -04:00
Rob Rix
f141319f84
Rename User to Name.
2019-08-06 11:18:54 -04:00
Rob Rix
901014d6ac
🔥 a redundant FIXME.
2019-07-30 09:38:09 -04:00
Rob Rix
e58dea96fb
Factor out how we extend bindings.
2019-07-30 09:21:03 -04:00
Rob Rix
100d6a18ff
Extend the scope graph on assignment.
2019-07-30 09:14:32 -04:00
Rob Rix
196f2bff17
Add declarations to records.
2019-07-29 16:16:46 -04:00
Rob Rix
a73b267ebd
Rename Entry to Decl.
2019-07-29 16:10:09 -04:00
Rob Rix
ed94104e27
Map entries to references.
2019-07-29 16:08:56 -04:00
Rob Rix
a4066b9df6
Construct scope graphs on deref.
2019-07-29 16:07:29 -04:00
Rob Rix
6cb9af299e
Correct the Monoid instance for ScopeGraph.
2019-07-29 15:51:52 -04:00
Rob Rix
3bf6cb61fd
Export ScopeGraph’s constructor & field.
2019-07-29 15:51:38 -04:00
Rob Rix
34da6ada5c
Rename a couple of copy-pasta’d variables.
2019-07-29 15:36:37 -04:00
Rob Rix
a04ccbb08c
Write record fields to the heap in the abstract analyses.
2019-07-29 13:33:07 -04:00
Rob Rix
c7bee13fd4
Generalize scopeGraph over the term type.
2019-07-29 13:22:18 -04:00
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