Timothy Clem
ff1d9591c7
Take path and lang from after file
2017-12-09 18:13:19 -08:00
Timothy Clem
ba2159e940
First attempt at BlobPair as These and bitraversable
2017-12-09 17:36:48 -08:00
Timothy Clem
46cccd5015
Don't parse blobs that don't exist
2017-12-08 11:42:46 -07:00
Rob Rix
27f7a5778f
Reformat the replacement rule.
2017-12-07 10:52:21 -07:00
Rob Rix
1717f2a6a6
Replacements use unique node IDs.
2017-12-07 10:18:44 -07:00
Rob Rix
3b3e5495a1
Allow multiple in-edges per iteration.
2017-12-07 10:14:30 -07:00
Rob Rix
0ba3ec6bd1
Rename graphAlgebra to termAlgebra.
2017-12-07 09:53:29 -07:00
Rob Rix
51affc82a3
Colourize patches.
2017-12-07 09:47:47 -07:00
Rob Rix
a86a50d986
Render diffs to DOT.
2017-12-07 09:36:39 -07:00
Rob Rix
82483e2015
Nodes have a map of attributes.
2017-12-07 09:25:25 -07:00
Rob Rix
d40da054f7
Stub in a title for diff graphs.
2017-12-07 08:44:03 -07:00
Rob Rix
fd6cc2f057
Move the datatypes up a little.
2017-12-07 08:40:44 -07:00
Rob Rix
0bd661b831
Turn on mono local binds.
2017-12-06 13:42:48 -07:00
Rob Rix
b7e3ab1274
Quote the labels.
2017-12-06 13:38:27 -07:00
Rob Rix
b0461325f9
Compute unique names for siblings.
2017-12-06 13:23:22 -07:00
Rob Rix
90349b0abb
Terminate Node renderings with semicolons.
2017-12-06 10:18:12 -07:00
Rob Rix
673dd28537
Pick IDs for nodes.
2017-12-06 09:47:40 -07:00
Rob Rix
dde473abd1
Explicitly list the exports.
2017-12-06 09:42:08 -07:00
Rob Rix
0e4f3cfb56
Fold terms into graphs.
2017-12-06 09:41:54 -07:00
Rob Rix
08134d6cec
Define renderers for Graphs, Nodes, & Edges.
2017-12-06 09:30:06 -07:00
Rob Rix
e9e0f14248
Define a Monoid instance for Graph.
2017-12-06 09:29:35 -07:00
Rob Rix
d1dd288ec7
Define a Semigroup instance for Graph.
2017-12-06 09:29:27 -07:00
Rob Rix
55308e6fc6
Define Graph, Node, & Edge datatypes.
2017-12-06 09:29:04 -07:00
Rob Rix
30fce0aaf1
Add an eliminator for ConstructorLabel.
2017-12-06 09:14:52 -07:00
Rob Rix
9995d527d5
Pass the blobs to the DOT renderers.
2017-12-06 09:03:10 -07:00
Rob Rix
7fe9c3b2ea
Add CLI options for DOT rendering.
2017-12-06 09:01:48 -07:00
Rob Rix
887ea76454
Add DOT term/diff renderers.
2017-12-06 09:01:32 -07:00
Rob Rix
82fc60d524
Re-export the DOT rendering functions.
2017-12-06 09:00:55 -07:00
Rob Rix
4ef26933dc
Stub in functions to render to DOT.
2017-12-06 08:58:06 -07:00
Rob Rix
d880f22964
Stub in a module for a DOT renderer.
2017-12-06 08:49:06 -07:00
Rick Winfrey
750c4a6d3e
Contextualize specific syntax for function and method declarations
...
- These assignment rules are two of the only places in Go assignment where individual syntax rules are used. This wraps those syntax rules in `term`, so that they can be contextualized.
2017-12-02 12:44:28 -08:00
Timothy Clem
88700608b6
Formatting and linting
2017-12-01 16:34:36 -08:00
Rick Winfrey
7c1d381530
Turn on Go assignment
2017-12-01 14:45:37 -08:00
Timothy Clem
5ba411c538
Needed to evalute?
2017-12-01 14:20:30 -08:00
Timothy Clem
3382a8ae72
No more alternative python
2017-12-01 14:19:55 -08:00
Timothy Clem
89749e9cc8
Default eval instances for everything!
2017-12-01 14:19:37 -08:00
Rob Rix
d2cb077ddc
Don’t assign parent labels to grams.
2017-12-01 17:07:03 -05:00
Rob Rix
99f3633060
Generalize featureVectorDecorator to accept any Hashable label.
2017-12-01 17:00:40 -05:00
Rick Winfrey
21024a0506
🔥 unnecessary language extensions
2017-12-01 13:36:32 -08:00
Timothy Clem
13f029238f
Use newtypes
2017-12-01 13:23:33 -08:00
Timothy Clem
1676d949fa
Not using fail
2017-12-01 13:23:28 -08:00
Rick Winfrey
7ee4b04c1f
Update CyclomaticComplexity
2017-12-01 13:00:30 -08:00
Rob Rix
43237fff1e
No need to qualify these names.
2017-12-01 14:44:21 -05:00
Rob Rix
bf26a25cff
📝 why the unsafeCoerce is ok.
2017-12-01 14:42:26 -05:00
Rob Rix
d809e0b81d
Only coerce the set itself.
2017-12-01 14:39:20 -05:00
Rick Winfrey
e7a5e88d5e
First pass updating CyclomaticComplexity
2017-12-01 11:39:04 -08:00
Rob Rix
3652fd2c63
Rename the live set functions uniquely.
2017-12-01 14:33:41 -05:00
Rob Rix
67f8aedc50
Use Live to represent root sets.
2017-12-01 14:30:05 -05:00
Rob Rix
07ec5e3238
Define insertion into live sets.
2017-12-01 14:28:35 -05:00
Rob Rix
3b315112dc
Define Live.delete tacitly.
2017-12-01 14:28:28 -05:00
Rob Rix
67c633f3b0
Define the symmetric difference on live sets.
2017-12-01 14:27:50 -05:00
Rob Rix
40d004a289
Define splitting of live sets.
2017-12-01 14:26:29 -05:00
Rob Rix
de9bdc3e34
Define membership tests on live sets.
2017-12-01 14:24:38 -05:00
Rick Winfrey
df52854ef0
Merge branch 'master' into cyclomatic-complexity-decorator
2017-12-01 11:23:15 -08:00
Rob Rix
0402253012
Construct singleton live sets.
2017-12-01 14:20:45 -05:00
Rob Rix
3050438327
Delete addresses from live sets.
2017-12-01 14:20:06 -05:00
Rob Rix
80058c9807
Spacing.
2017-12-01 14:19:58 -05:00
Rob Rix
915ce45f9f
Derive Semigroup & Monoid instances for Live.
2017-12-01 14:16:36 -05:00
Rob Rix
125392bcfc
Address is an Ord-homomorphism, so we can just unsafeCoerce
everything around.
2017-12-01 14:14:53 -05:00
Rob Rix
0d31aece39
Derive Eq1, Ord1, & Show1 instances for Live.
2017-12-01 14:05:41 -05:00
Rob Rix
4bcbffe827
Define a Generic1 instance for Live.
2017-12-01 14:05:30 -05:00
Rob Rix
ae473f7ad2
Define a Functor instance for Live.
2017-12-01 13:57:56 -05:00
Rob Rix
7c3eb5cfda
Define a Live set newtype.
2017-12-01 13:57:38 -05:00
Rob Rix
37b44b513b
Add a module for a live set.
2017-12-01 13:57:15 -05:00
Rob Rix
05b35cd747
iterFreer’s algebra takes the continuation & instruction in the opposite order.
2017-12-01 13:54:32 -05:00
Rob Rix
cbeb7371cc
There’s just one module now.
2017-12-01 13:47:34 -05:00
Rob Rix
10d6ae7a0f
Merge branch 'master' into integrate-abstract-interpretation
2017-12-01 13:46:15 -05:00
Timothy Clem
89dcf0fe61
Don't allow evaluating to Type after all
...
Evaluating to types should always use evalCache rather than evaluate. Using evaluate will infinite loop on recursive programs. - @robrix
2017-12-01 10:03:02 -08:00
Rob Rix
ecfd121575
Merge branch 'master' into 🔥 -monolithic-syntax
2017-12-01 12:28:19 -05:00
Timothy Clem
5862a73334
Evaluation to Types requires NonDetEff and Fresh Effects
2017-12-01 09:21:08 -08:00
Rob Rix
cffe4a757e
Merge branch 'master' into update-go-toc-rendering
2017-12-01 11:22:27 -05:00
Rob Rix
404dde2cd9
Derive the instances for Address.
2017-12-01 09:49:33 -05:00
Rob Rix
268d559bd3
Derive the instances for Environment.
2017-12-01 09:49:28 -05:00
Rob Rix
9c84fb0d2a
Derive the Eq1, Ord1, & Show1 instances for Configuration.
2017-12-01 09:46:52 -05:00
Rob Rix
5e17e4c183
📝 Address & Precise.
2017-11-30 20:07:21 -05:00
Rob Rix
45d73dec35
Use Pointed & Monoid instead of IsList.
2017-11-30 20:04:00 -05:00
Rob Rix
1543a019f2
Clean up the dead evaluator’s LANGUAGE pragmas.
2017-11-30 19:58:44 -05:00
Rob Rix
9cfad1d275
Clean up the tracing evaluator’s LANGUAGE pragmas.
2017-11-30 19:58:08 -05:00
Rob Rix
f42c2ef375
🔥 ev.
2017-11-30 19:56:44 -05:00
Rob Rix
a9e5619d6c
Break the dead evaluator’s dependency on the evaluator.
2017-11-30 19:56:21 -05:00
Rick Winfrey
e18ca5b9d0
Merge branch 'update-go-toc-rendering' of github.com:github/semantic-diff into update-go-toc-rendering
2017-11-30 16:55:40 -08:00
Rick Winfrey
57015bc8bd
Update methodSpec assignments to not require return type
2017-11-30 16:55:20 -08:00
Rob Rix
a57a2c0d42
Simplify the Interpreter type synonym.
2017-11-30 19:54:16 -05:00
Rob Rix
16c663bfc9
Break the tracing evaluator’s dependency on the evaluator.
2017-11-30 19:53:55 -05:00
Rob Rix
51b8461be3
Abstract the tracing evaluators over the term type.
2017-11-30 19:49:26 -05:00
Rob Rix
0ac52c4fc3
Break the caching evaluator’s dependency on the evaluator.
2017-11-30 19:46:55 -05:00
Rob Rix
eb042b6032
Abstract the caching evaluator over the term type.
2017-11-30 19:44:43 -05:00
Rob Rix
d66540e574
Rename Abstract.Interpreter.Symbolic to Analysis.Abstract.Symbolic.
2017-11-30 19:42:41 -05:00
Rob Rix
c36c257618
Rename Abstract.Interpreter to Analysis.Abstract.Evaluating.
2017-11-30 19:41:34 -05:00
Rob Rix
333f5249b6
Simplify the LANGUAGE pragmas for Abstract.Interpreter.
2017-11-30 19:39:55 -05:00
Rob Rix
5dfd7fe15c
Abstract evaluate
over the term type.
2017-11-30 19:38:53 -05:00
Rick Winfrey
3bc8c4cff5
Merge branch 'master' into update-go-toc-rendering
2017-11-30 16:37:14 -08:00
Rob Rix
0e309d54b4
Re-use ev in the Caching analysis.
2017-11-30 19:36:53 -05:00
Rob Rix
9f7c07a2c8
Re-use ev in the Dead analysis.
2017-11-30 19:36:05 -05:00
Rob Rix
d9da859024
Generalize ev over the term type.
2017-11-30 19:35:43 -05:00
Rob Rix
2525992123
Move evCollect & evRoots into their own module.
2017-11-30 19:35:35 -05:00
Rob Rix
8f392661dd
Rename Abstract.Interpreter.Caching to Analysis.Abstract.Caching.
2017-11-30 19:27:26 -05:00
Rick Winfrey
35a83422f4
Do less work for more accuracy
2017-11-30 16:26:45 -08:00
Rob Rix
41656cd4f1
Move MonadNonDet into its own module.
2017-11-30 19:24:27 -05:00
Rob Rix
2aa8a601bc
Move MonadCacheIn and MonadCacheOut into their own module.
2017-11-30 19:22:17 -05:00
Rob Rix
4695e4c544
Extract Cache into its own module.
2017-11-30 19:16:28 -05:00
Rob Rix
ddecfc41e5
Extract MonadAddress into its own module.
2017-11-30 19:12:18 -05:00
Rick Winfrey
bafff20f3b
Tokenize the fun
keyword in function declarations
2017-11-30 16:02:16 -08:00
Rob Rix
f1e5080c69
Rename Abstract.Interpreter.Tracing to Analysis.Abstract.Tracing.
2017-11-30 18:57:56 -05:00
Rob Rix
c3f8107046
🔥 some redundant LANGUAGE pragmas in Data.Abstract.Eval.
2017-11-30 18:55:24 -05:00
Rob Rix
6811300401
Move MonadTrace into its own module.
2017-11-30 18:53:58 -05:00
Rob Rix
8d6676aebe
Rename Analysis.Abstract.Eval to Data.Abstract.Eval.
2017-11-30 18:51:15 -05:00
Rob Rix
4a64ede395
Rename Abstract.Interpreter.Dead to Analysis.Abstract.Dead.
2017-11-30 18:49:19 -05:00
Rob Rix
e47703a782
Generalize the dead code analysis over the term type.
2017-11-30 18:48:04 -05:00
Rob Rix
c30869e076
Extract MonadDead into its own module.
2017-11-30 18:43:43 -05:00
Rob Rix
15d9bdceb9
🔥 Abstract.Primitive.
2017-11-30 18:38:01 -05:00
Rob Rix
ecae28204e
Rename Abstract.Store to Control.Monad.Effect.Store.
2017-11-30 18:35:29 -05:00
Rob Rix
60256cfe30
Extract the Store type into Data.Abstract.Store.
2017-11-30 18:32:05 -05:00
Rob Rix
efbe6988cc
Rename Abstract.Value to Data.Abstract.Value.
2017-11-30 18:27:35 -05:00
Rob Rix
576f7774ea
Rename Abstract.Type to Data.Abstract.Type.
2017-11-30 18:21:02 -05:00
Rob Rix
e614b818a7
Rename Abstract.Address to Data.Abstract.Address.
2017-11-30 18:08:46 -05:00
Rob Rix
105eb793e1
Rename Abstract.FreeVariables to Data.Abstract.FreeVariables.
2017-11-30 18:02:14 -05:00
Rob Rix
627f6fb731
Rename Abstract.Configuration to Data.Abstract.Configuration.
2017-11-30 17:57:58 -05:00
Rob Rix
536ea7e1b1
Rename Abstract.Environment to Data.Abstract.Environment.
2017-11-30 17:55:18 -05:00
Rob Rix
d3aacd96e6
Rename Abstract.Eval to Analysis.Abstract.Eval.
2017-11-30 17:51:38 -05:00
Rob Rix
2df600835f
Move MonadGC into its own module.
2017-11-30 17:43:30 -05:00
Rob Rix
e938875a93
Rename Abstract.Monad.Env to Control.Monad.Effect.Env.
2017-11-30 17:38:19 -05:00
Rob Rix
251520f926
Move MonadFresh into its own module.
2017-11-30 17:33:26 -05:00
Rob Rix
cd8a79a2a9
Fresh operates over TName instead of Int.
2017-11-30 17:24:25 -05:00
Rob Rix
5f8aa1e573
Merge branch 'master' into integrate-abstract-interpretation
2017-11-30 17:16:26 -05:00
Rob Rix
8da948440e
Merge branch 'master' into better-generic-show1-instances
2017-11-30 17:10:03 -05:00
Rob Rix
73b2e54a06
Merge branch 'master' into 🔥 -monolithic-syntax
2017-11-30 17:09:39 -05:00
Rob Rix
d1da673a9f
More docs for F- & R-algebras.
...
cc @joshvera — I talked a little about open recursion as well.
2017-11-30 17:04:36 -05:00
Rob Rix
755f12a2b4
Simplify the language extensions in the environment module.
2017-11-30 16:02:52 -05:00
Rob Rix
1564d11ecd
🔥 ambiguous types & type applications in Value.
2017-11-30 15:59:36 -05:00
Rob Rix
4d6f982240
🔥 ambiguous types in Store.
2017-11-30 15:58:58 -05:00
Rob Rix
52997e736e
🔥 ambiguous types & type applications in Eval.
2017-11-30 15:57:03 -05:00
Rob Rix
f996b9ddff
🔥 the location parameter to MonadCacheIn & MonadCacheOut.
2017-11-30 15:55:14 -05:00
Rob Rix
3f1a94efb7
🔥 the location parameter to MonadGC.
2017-11-30 15:53:51 -05:00
Rob Rix
e26cc860fd
🔥 the location parameter to MonadEnv.
2017-11-30 15:48:01 -05:00
Rob Rix
9f5a5e0469
Move MonadEnv into its own module.
2017-11-30 15:44:58 -05:00
Rob Rix
609b1a1786
🔥 a few type applications.
2017-11-30 15:38:43 -05:00
Rob Rix
a5c615e095
Specialize MonadStore to use the location for the given value type.
2017-11-30 15:35:07 -05:00
Rob Rix
57f531edf2
Move envLookupOrAlloc to Abstract.Store.
2017-11-30 14:46:26 -05:00
Rob Rix
77e2576d38
Break Abstract.Value’s dependency on Abstract.Store.
2017-11-30 14:44:21 -05:00
Rob Rix
36b00f4ab5
Derive the Foldable, Functor, Traversable, Eq1, Ord1, & Show1 instances.
2017-11-30 13:21:38 -05:00
Rob Rix
630523e2a4
Derive the Eq, Ord, & Show instances for Store &c.
2017-11-30 13:09:49 -05:00
Rob Rix
24af666487
Derive a Generic1 instance for Store.
2017-11-30 13:01:17 -05:00
Rob Rix
0d44b932de
Store is indexed by locations instead of addresses.
2017-11-30 13:00:18 -05:00
Rob Rix
03b5329bd4
Move Cell into Address.
2017-11-30 12:48:21 -05:00
Rob Rix
48f9ee5bfe
Derive the Foldable, Functor, & Traversable instances for Latest.
2017-11-30 12:20:33 -05:00
Rob Rix
6dd9e99ce4
Derive the Foldable, Functor, & Traversable instances for Address.
2017-11-30 12:20:12 -05:00
Rob Rix
4c28956c6d
Rename I to Latest.
2017-11-30 12:18:03 -05:00
Rob Rix
b08d7bd5fa
Precise cells merge by taking the new value.
2017-11-30 12:17:06 -05:00
Rob Rix
05dbdb21f5
Move I into Abstract.Address.
2017-11-30 12:15:51 -05:00
Rob Rix
256125c059
Move Precise & Monovariant into Abstract.Address.
2017-11-30 12:12:35 -05:00
Rob Rix
636109e5ef
Move Address into its own module.
2017-11-30 12:06:30 -05:00
Rob Rix
2721f03946
Derive the Eq1, Ord1, & Show1 instances for I generically.
2017-11-30 11:56:36 -05:00
Rob Rix
098e5a9706
Derive the Eq1, Ord1, & Show1 instances for Closure generically.
2017-11-30 11:51:28 -05:00
Rob Rix
10f7ed7978
Merge branch 'master' into integrate-abstract-interpretation
2017-11-30 11:30:55 -05:00
Rob Rix
d843c9a328
Rename the option.
2017-11-30 11:10:22 -05:00
Rob Rix
6f30e47589
Omit selectors by default.
2017-11-30 11:09:41 -05:00
Rob Rix
663ffab1b4
Export defaultGShow1Options.
2017-11-30 11:07:15 -05:00
Rob Rix
7f0ecbef19
Simplify how the options are applied.
2017-11-30 11:06:48 -05:00
Rob Rix
41490a38f1
Define a helper to provide options when implementing liftShowsPrec generically.
2017-11-30 11:04:07 -05:00
Rob Rix
90fde64e9f
Add options to allow disabling record syntax.
2017-11-30 11:02:05 -05:00
Rob Rix
a76ca3fcfc
Generic Show1 respects fixity and record selectors.
2017-11-30 10:36:51 -05:00
Rob Rix
cd9e99eb59
🔥 genericLiftShowList.
2017-11-30 10:28:46 -05:00
Rob Rix
67f251e223
Combine the generic Eq1, Ord1, & Show1 implementations into a single module.
2017-11-30 10:24:48 -05:00
Rob Rix
bb2aa0ad0a
Stub in a module to hold all the generic Data.Functor.Classes implementations.
2017-11-30 10:14:21 -05:00
Rob Rix
4fe9c9ca52
Merge branch 'musical-modules' into 🔥 -monolithic-syntax
2017-11-30 10:06:30 -05:00
Rob Rix
cbd02eab7b
Merge branch 'master' into musical-modules
2017-11-30 09:53:19 -05:00
Timothy Clem
66324caacd
No need for foldable
2017-11-29 20:54:28 -08:00
Timothy Clem
3bd401d0cc
Extract an envLookupOrAlloc function
2017-11-29 20:54:07 -08:00
Timothy Clem
f4414287cb
Type check input params/args too
2017-11-29 20:10:16 -08:00
Timothy Clem
16bdc21e4f
Produce TArr properly
2017-11-29 20:08:03 -08:00
Timothy Clem
8aadfa44a6
Unify TArr
2017-11-29 20:07:42 -08:00
Rick Winfrey
cd1fdf1065
🔥 specialized assignment alternations
2017-11-29 18:10:57 -08:00
Rick Winfrey
eb83043303
🔥 unnecessary arrayType
2017-11-29 18:07:25 -08:00
Rick Winfrey
15cb0d7ec4
Refactor functionDeclaration
2017-11-29 17:56:12 -08:00
Timothy Clem
95512a82a0
Formatting
2017-11-29 17:05:51 -08:00
Timothy Clem
9f310ac992
Evaluate Call to types (sort of)
...
No unification yet
2017-11-29 17:05:39 -08:00
Timothy Clem
e16d5bdb0f
Evaluate Function declarations to Types
2017-11-29 17:05:07 -08:00
Timothy Clem
5e22f19714
Introduce TArr type
2017-11-29 17:04:37 -08:00
Rick Winfrey
1468f74428
Refactor to not use tuples
2017-11-29 17:03:35 -08:00
Rick Winfrey
d0a521779e
Add type annotation for mkChannelType
2017-11-29 16:25:57 -08:00
Rick Winfrey
ed012fe18d
Convert to point free
2017-11-29 16:10:50 -08:00
Rick Winfrey
890b37c252
Use choice for type rules
2017-11-29 16:10:35 -08:00
Rick Winfrey
ed3f36ccde
Refactor unaryExpression to not use >>=
2017-11-29 16:04:03 -08:00
Rick Winfrey
b7bf6c06be
Refactor for statement assignment 🎉 🎩 @robrix
2017-11-29 14:57:37 -08:00
Timothy Clem
99ec8a1758
Calling subcontext keeps the env intact
2017-11-29 13:57:48 -08:00
Timothy Clem
af99c51159
Implement evaluation of calls (for value types)
2017-11-29 13:57:26 -08:00
Timothy Clem
8b61483ca2
Extend the env with the function name
2017-11-29 13:57:05 -08:00
Timothy Clem
72e81e30a9
Make my linter happy
2017-11-29 13:56:31 -08:00
Timothy Clem
e336e8735e
Relax eval constaints for more choice in control flow
2017-11-29 13:55:46 -08:00
Rick Winfrey
410b8e12e0
Update receive statement 📝
2017-11-29 12:54:01 -08:00
Rick Winfrey
6f0ab3c42a
Assign receive operators
2017-11-29 12:37:49 -08:00
Rick Winfrey
c0637e85ef
Add ReceiveOperator constructor
2017-11-29 12:37:37 -08:00
Rick Winfrey
fafcdfb83b
🔥 Todos
2017-11-29 12:37:15 -08:00
Rob Rix
355ec2aa5e
TODOs
2017-11-29 14:07:40 -05:00
Rob Rix
2104e08b66
Evaluate function declarations to closures.
...
This is a bit wrong.
2017-11-29 14:05:44 -05:00
Rob Rix
3862b3da57
Abstract Value over the term type.
2017-11-29 14:05:18 -05:00
Rob Rix
f1bff2c6f3
Rename the a parameter to value.
2017-11-29 13:55:21 -05:00
Rob Rix
0bf69a1ce9
Closures have a list of parameters.
2017-11-29 13:29:44 -05:00
Rob Rix
60a1d326c9
Evaluate type annotations by evaluating their subjects.
2017-11-29 13:15:16 -05:00
Rob Rix
797330650f
Customize the default eval to show the constructor.
2017-11-29 13:07:15 -05:00
Rob Rix
f569fe74db
The default Eval instance uses MonadFail instead of Prelude.fail.
2017-11-29 13:00:26 -05:00
Rob Rix
2f02104f82
Abstract evaluation to values/types via a AbstractValue class.
2017-11-29 12:56:21 -05:00
Rob Rix
fce88d982c
Rename AbstractValue to ValueRoots.
2017-11-29 12:44:47 -05:00
Rob Rix
a34a8ec3a3
Split Primitive up into component types.
2017-11-29 12:28:08 -05:00
Rob Rix
71c85e4d16
Represent values with a union of types.
2017-11-29 12:10:27 -05:00
Rob Rix
942ac27161
Define a Show2 instance for Environment.
2017-11-29 12:09:01 -05:00
Rob Rix
0db9e01728
🔥 MonadPrim constraints.
2017-11-29 11:56:03 -05:00
Timothy Clem
026cc46dbc
Merge branch 'master' of https://github.com/github/semantic-diff into integrate-abstract-interpretation
2017-11-28 15:49:46 -08:00
Timothy Clem
4a60f0cd59
Let the other interpreters infer location from value
2017-11-28 15:44:51 -08:00
Timothy Clem
53d4a41cff
Move to bottom of file for clarity
2017-11-28 15:44:23 -08:00
Timothy Clem
6fc6139887
Don't need these
2017-11-28 15:44:12 -08:00
Timothy Clem
0c80260ceb
Rework evalute to infer location from the value
2017-11-28 15:43:58 -08:00
Timothy Clem
a7bb4aae58
Need a Reader for the address set in our effect stack
2017-11-28 15:43:06 -08:00
Rob Rix
ae9c9ce2cb
Evaluate identifiers.
2017-11-28 17:39:37 -05:00
Rob Rix
5a65fc11cd
Typecheck Programs.
2017-11-28 17:23:46 -05:00
Rob Rix
3e71e57358
Cell types uniquely determine location types.
2017-11-28 17:19:45 -05:00
Rob Rix
3b4e4bcff1
Abstract the Eval instance for Assignment over the value type.
2017-11-28 17:19:25 -05:00
Rob Rix
e416ebb679
Relate value types to their location types.
2017-11-28 17:19:13 -05:00
Rick Winfrey
6a6c38d309
Use Declaration.MethodSignature
2017-11-28 13:53:35 -08:00
Rick Winfrey
3f69729d5f
Move TypeScript MethodSignature to Declaration
2017-11-28 13:53:18 -08:00
Rob Rix
8d625d63c6
Derive a Generic1 instance for Configuration.
2017-11-28 16:13:20 -05:00
Rob Rix
451025d1b2
Cache roots as lists in configurations.
2017-11-28 16:13:12 -05:00
Rob Rix
0252667c34
🔥 Abstract.Set.
2017-11-28 16:08:48 -05:00
Rob Rix
790e5fc619
🔥 a redundant type parameter to ev.
2017-11-28 15:44:08 -05:00
Rob Rix
e5f8901851
Simplify an Eval constraint slightly.
2017-11-28 15:42:57 -05:00
Rob Rix
c7fbf21802
Remove the t parameter to Eval.
2017-11-28 15:42:15 -05:00
Timothy Clem
56e5b206c4
Eval doesn't need to be parameterized by l
2017-11-28 11:56:46 -08:00
Timothy Clem
d946c876ae
Eval type class doesn't need to know about Term
2017-11-28 11:48:08 -08:00
Timothy Clem
0d391d8e39
Update Eval instance for Empty
2017-11-28 11:15:14 -08:00
Timothy Clem
97e5581436
Update Eval instance for Program
2017-11-28 11:15:03 -08:00
Timothy Clem
00c48f3270
Updated Eval instance for List
2017-11-28 11:14:29 -08:00
Timothy Clem
e65686463a
Update Context eval instance to use yield
2017-11-28 11:13:34 -08:00
Timothy Clem
b821c4009c
Assignment eval now uses continutation, does envLookup
2017-11-28 11:13:05 -08:00
Timothy Clem
9f4eed9aef
Define freeVariables1 helper
2017-11-28 11:10:30 -08:00
Timothy Clem
361aa18578
Change context order for easier type application
2017-11-28 11:10:10 -08:00
Rick Winfrey
2e72a56ccf
Update sliceExpression assignment
2017-11-28 11:09:57 -08:00
Timothy Clem
1a7f29c26b
Whitespace
2017-11-28 11:09:55 -08:00
Timothy Clem
d9c4c736d1
Use yield continutation in our syntaxes
2017-11-28 11:09:31 -08:00
Timothy Clem
953e86fc6e
Fix up interpreters to eval with continuation
2017-11-28 11:08:05 -08:00
Timothy Clem
7af7c7aab9
Give eval a continutation
2017-11-28 11:06:46 -08:00
Rick Winfrey
f93a0389ce
Merge branch 'master' into go-assignment
2017-11-28 09:21:10 -08:00
Rob Rix
f1c4b58797
Merge branch 'musical-modules' into 🔥 -monolithic-syntax
2017-11-28 11:59:38 -05:00
Rob Rix
4c974c31a3
Move syntaxDeclarationAlgebra & helpers down to match original source.
2017-11-28 09:58:55 -05:00
Rob Rix
41020b7eae
Extract the Declaration algebras into a new module.
2017-11-28 09:17:41 -05:00
Rick Winfrey
852d3464de
Add TODOs
2017-11-27 18:01:17 -08:00
Rick Winfrey
c9d8bb62c5
🔥 space
2017-11-27 17:37:00 -08:00
Rick Winfrey
9329840985
Refactor sliceExpression assignment
2017-11-27 17:25:28 -08:00
Rick Winfrey
268bdb2e1e
Refactor fieldDeclaration assignment
2017-11-27 17:25:17 -08:00
Rick Winfrey
a25fa79627
Refactor channelType assignment
2017-11-27 17:25:03 -08:00