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

11034 Commits

Author SHA1 Message Date
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