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

12430 Commits

Author SHA1 Message Date
Rob Rix
9ef31e03ec We don’t actually need the functional dependency here. 2018-03-14 11:19:19 -04:00
Rob Rix
34f2f04931 Clean up some language extensions. 2018-03-14 11:19:00 -04:00
Rob Rix
9b53187b8e Define Cell as an associated type family. 2018-03-14 11:16:23 -04:00
Rob Rix
6dd03c72d5 Define Cell as an open type family. 2018-03-14 11:15:23 -04:00
Rob Rix
8ac251c45b Rename a bunch more type parameters. 2018-03-14 11:12:44 -04:00
Rob Rix
e8df177ed4 Rename a bunch of type parameters. 2018-03-14 11:11:39 -04:00
Rob Rix
50f57fcf6f Generalize Environment over the address type. 2018-03-14 11:10:47 -04:00
Rob Rix
9d9b0abd67 Use EnvironmentFor to abbreviate lookupOrAlloc('). 2018-03-14 11:10:08 -04:00
Rob Rix
f105ecbdaa Align Configuration fields. 2018-03-14 11:09:20 -04:00
Rob Rix
12824b018a Sort imports. 2018-03-14 11:09:14 -04:00
Rob Rix
971ca6e5ad Define an AbstractValue typeclass with instances for Value & Type. 2018-03-14 10:58:08 -04:00
Rob Rix
426b48ea1c Define LocationFor as an open type family. 2018-03-14 10:55:59 -04:00
Patrick Thomson
78212c6efb Merge remote-tracking branch 'origin/master' into symbol-eval 2018-03-14 10:50:34 -04:00
Patrick Thomson
b7b1b1f2ef Merge remote-tracking branch 'origin/master' into symbol-eval 2018-03-14 10:46:56 -04:00
Rob Rix
b8fb250e10 apply does not take Subterms. 2018-03-14 10:45:03 -04:00
Patrick Thomson
fc122bdfbe Merge branch 'symbol-eval' of github.com:github/semantic into symbol-eval 2018-03-14 10:43:33 -04:00
Patrick Thomson
99d4815d3a Don't do anything clever with stripping colons from symbols. 2018-03-14 10:42:50 -04:00
Patrick Thomson
229902a5ca Merge remote-tracking branch 'origin/master' into rationals 2018-03-14 10:40:00 -04:00
Patrick Thomson
81aab6572e Address Rob's changes. 2018-03-14 10:36:56 -04:00
Rob Rix
25e95513ee Re-indent the signature for assign. 2018-03-14 10:34:00 -04:00
Rob Rix
86626ca242 Reformat a bunch of signatures. 2018-03-14 10:33:39 -04:00
Rob Rix
568cda0f12 Correct liftComparison. 2018-03-14 10:33:34 -04:00
Rob Rix
53e582fe8a Merge branch 'master' into fix-fix 2018-03-14 10:24:20 -04:00
Rob Rix
63c88b8aa5 Try letrec'ing a loop variable. 2018-03-14 10:24:13 -04:00
Rob Rix
eb41c0886e Add a typescript typechecking entry point. 2018-03-14 10:23:54 -04:00
Rob Rix
3a654abb08 Reformat RequiredEffects over multiple lines. 2018-03-14 09:40:45 -04:00
Rob Rix
6918fb31cf Merge branch 'master' into garbage-collecting 2018-03-14 09:39:55 -04:00
Rob Rix
5f86831c28 🔥 Interface values. 2018-03-14 09:31:05 -04:00
Rob Rix
5e5599c9e8 Copy my changes back. 2018-03-14 09:30:45 -04:00
Rob Rix
6833ac039e Merge branch 'master' into import-environments 2018-03-14 09:07:46 -04:00
Patrick Thomson
0d248e2aab Make sure we match Rationals in liftNumeric. 2018-03-13 20:55:46 -04:00
Patrick Thomson
6a604628d0 Merge branch 'master' into symbol-eval 2018-03-13 19:19:41 -04:00
Patrick Thomson
ca96b02869 strictness annotations. will this do anything? only time will tell 2018-03-13 19:03:00 -04:00
Patrick Thomson
f9e8edddff Merge remote-tracking branch 'origin/master' into rationals 2018-03-13 18:24:25 -04:00
Patrick Thomson
92a7b4ca93 Add Evaluatable instance for Rational and unify numerical interface.
This one's kind of a doozy. We pull in a GADT that wraps an `Integer`,
`Rational`, or `String`, and change the interpreted value types to
hold instances of this GADT (`Number`). We also provide a rank-2
wrapper that hides the type parameter when necessary.

The upshot of this patch is that we get support for rational numbers
and a cleaner interface in MonadValue, without sacrificing a mote of
type safety: interpreted `Integer` values are guaranteed to contain a
Haskell `Integer`.

On the other hand, it's kind of a monstrosity. Please let me know if
you spot any places where I can simplify these constructs or document
the code more fully.

To test in Ruby, evaluate `3r ** 4r`.
2018-03-13 18:13:38 -04:00
Timothy Clem
4599dd7ce5 Remove extraneous plainImport 2018-03-13 14:33:51 -07:00
Rob Rix
2ecc371f8d Revert "Subterm takes a parameter for the monadic context."
This reverts commit 1d3e72a833681f3010446cd636af86e005290745.
2018-03-13 17:09:18 -04:00
Rob Rix
d6c6662283 Subterm takes a parameter for the monadic context. 2018-03-13 17:05:38 -04:00
Timothy Clem
ffd7a780e2 Merge remote-tracking branch 'origin/master' into import-language-tour 2018-03-13 14:04:22 -07:00
Rob Rix
caa0848aff Add a letrec construct. 2018-03-13 16:58:50 -04:00
Timothy Clem
62de6d1ca5 Actually remove this 2018-03-13 13:47:13 -07:00
Josh Vera
91a5f87742 Merge branch 'master' into symbol-eval 2018-03-13 15:42:13 -05:00
Josh Vera
a8534f481f Merge branch 'master' into typescript-exports 2018-03-13 15:32:19 -05:00
joshvera
b094d4c0f6 Add Exports constraint to MonadEnvironment instance 2018-03-13 13:21:50 -07:00
Timothy Clem
1309ccd217 Slightly nicer way to express this 2018-03-13 13:19:48 -07:00
joshvera
f93243f5b5 Merge remote-tracking branch 'origin/master' into typescript-exports 2018-03-13 13:13:53 -07:00
Rob Rix
1e1495a507 Use while to define forLoop. 2018-03-13 16:10:20 -04:00
Timothy Clem
f3b2e0cd2a Store a list of terms in the unevaluted module table to allow multi file module imports 2018-03-13 13:09:04 -07:00
Rob Rix
b597ef909a Merge branch 'import-environments' of https://github.com/github/semantic-diff into import-environments 2018-03-13 16:00:02 -04:00
Rob Rix
a8b6528f67 Commit the right name 😞 2018-03-13 15:59:52 -04:00
Rob Rix
cee2e78ee5 Merge branch 'master' into import-environments 2018-03-13 15:58:17 -04:00
Rob Rix
a968fa05ac Tidy up bindEnv. 2018-03-13 15:57:57 -04:00
Patrick Thomson
eb364317cb move logic out of eval and into a helper 2018-03-13 15:57:08 -04:00
Patrick Thomson
d72c1807a2 stylistic changes 2018-03-13 15:42:47 -04:00
Patrick Thomson
611f1a9a6f Merge remote-tracking branch 'origin/evaluate-for-loops' into while-evaluation
Thanks to @robrix for the fixed eval instance.
2018-03-13 15:40:34 -04:00
Rob Rix
2ee1c7d472 Eval Module using [] to print the last value. 2018-03-13 15:36:02 -04:00
Rob Rix
e846675b5b Eval using [] to print the last value. 2018-03-13 15:34:50 -04:00
Rob Rix
9448cb437f Bind variables in for loops.
Co-Authored-By: Ayman Nadeem <aymannadeem@gmail.com>
2018-03-13 15:33:46 -04:00
Rob Rix
fb7946714c Unify equal types. 2018-03-13 15:33:18 -04:00
Rob Rix
b40eda1551 liftComparison promotes its operands. 2018-03-13 15:32:46 -04:00
Rob Rix
a6b4e5490a Eval using [] to print the last value. 2018-03-13 15:32:23 -04:00
Rob Rix
b8a31a21fb Add a typechecking entry point for TypeScript. 2018-03-13 15:31:36 -04:00
Rob Rix
6c5650b950 Merge remote-tracking branch 'origin/while-evaluation' into evaluate-for-loops 2018-03-13 15:06:47 -04:00
Patrick Thomson
6f9a6cb6b8 Evaluatable instance for symbols.
Deferring the decision on whether to intern symbols to some later date
when we really get into the weeds re. Ruby semantics.
2018-03-13 14:45:20 -04:00
Timothy Clem
61edbb020a Don't clash unnecessarily with existing Language data type 2018-03-13 10:58:57 -07:00
Patrick Thomson
d84e5d2043 otiose comments 2018-03-13 13:41:29 -04:00
Patrick Thomson
dffab93724 add for loops too, why not 2018-03-13 13:37:27 -04:00
Rob Rix
3a6ed6ff0c Merge remote-tracking branch 'origin/while-evaluation' into evaluate-for-loops 2018-03-13 13:28:03 -04:00
Timothy Clem
a7ba614334 Clean up Util a bit 2018-03-13 10:25:34 -07:00
Timothy Clem
f1036d9365 Extra space 2018-03-13 10:25:22 -07:00
Timothy Clem
aaa008b5dd Move evaluteFiles to Util 2018-03-13 10:14:52 -07:00
Timothy Clem
9b576ac2c6 Can get away without exporting EvaluatingEffects 2018-03-13 10:14:15 -07:00
Patrick Thomson
76e22f79cc unused import and pragma 2018-03-13 13:02:33 -04:00
Patrick Thomson
88a909690a unused import 2018-03-13 13:00:48 -04:00
Patrick Thomson
0cdcba6778 for real this time 2018-03-13 12:59:45 -04:00
Patrick Thomson
837b59f763 fix Type's implementation of liftComparison 2018-03-13 12:50:11 -04:00
Rob Rix
77a51026cf Define Evaluatable for TermF point-free. 2018-03-13 12:45:40 -04:00
Rob Rix
e1788b5ff1 📝 the use of foldMap1/nonEmpty. 2018-03-13 12:45:12 -04:00
Patrick Thomson
75215da112 document liftComparison 2018-03-13 12:44:24 -04:00
Rob Rix
40adaf2b3b Move require/load from Data.Abstract.Evaluatable to Control.Abstract.Analysis. 2018-03-13 12:42:33 -04:00
Patrick Thomson
fb67b923f5 merge cruft and rework ordering -> int mapping 2018-03-13 12:41:40 -04:00
Rob Rix
0956d571b8 🔥 redundant MonadValue constraints on require/load. 2018-03-13 12:39:22 -04:00
Patrick Thomson
bbda9bdbbc Merge remote-tracking branch 'origin/master' into while-evaluation 2018-03-13 12:33:20 -04:00
Rob Rix
6d6d49f9c1 🔥 interface/environment. 2018-03-13 12:30:22 -04:00
Rob Rix
0b96b5e987 Get the global environment instead of pulling it from the value type. 2018-03-13 12:30:17 -04:00
Rob Rix
ee65c191bd Don’t modify the environment in the monad. 2018-03-13 12:29:17 -04:00
Patrick Thomson
2bcc40edc1 generalize while and dowhile 2018-03-13 12:25:57 -04:00
Rob Rix
1572445844 Use RequiredEffects to tidy up the type signatures of evaluate/evaluates. 2018-03-13 12:21:17 -04:00
Patrick Thomson
74f3eb249b fix error printing 2018-03-13 12:19:26 -04:00
Patrick Thomson
4d7b683f6c rename au and kill evalToBool 2018-03-13 12:14:26 -04:00
Rob Rix
a93c75f8a2 Evaluate [] using Imperative & foldMap1. 2018-03-13 12:05:11 -04:00
Rob Rix
6f10d8aa83 Evaluate Module and Program using Imperative. 2018-03-13 12:04:48 -04:00
Patrick Thomson
3c5ab01f95 implement while and dowhile 2018-03-13 12:04:24 -04:00
Rob Rix
2e0244c215 Extend the local environment, to retain parameters. 2018-03-13 11:50:50 -04:00
Rob Rix
030c23c7f8 foldMap makes this a lot easier to reason about. 2018-03-13 11:50:04 -04:00
Patrick Thomson
2a68fbdb17 implement the generalized comparison operator 2018-03-13 11:42:49 -04:00
Rob Rix
51514f1e52 Simplify bindEnv using the Reducer instance. 2018-03-13 11:34:30 -04:00
Rob Rix
3f18765cd5 Derive a Reducer instance for Environment. 2018-03-13 11:30:03 -04:00
Rob Rix
83376c7277 🔥 envUnion. 2018-03-13 11:27:46 -04:00
Rob Rix
c34d378759 Define a Semigroup for imperative contexts. 2018-03-13 11:22:59 -04:00
Patrick Thomson
ac3a79ccbf change liftNumeric to be over Values 2018-03-13 11:21:05 -04:00
Patrick Thomson
807be3af29 Merge remote-tracking branch 'origin/master' into boolean-arithmetic-evaluation 2018-03-13 11:19:14 -04:00
Patrick Thomson
a36ce7e4e3 change liftNumeric to be over Values 2018-03-13 11:16:07 -04:00
Rob Rix
d136112abe Use putGlobalEnv instead of modifyGlobalEnv with const. 2018-03-13 11:08:25 -04:00
Patrick Thomson
03fccbde97 Merge remote-tracking branch 'origin/master' into while-evaluation 2018-03-13 11:00:57 -04:00
Patrick Thomson
19aa6a7300 comparison operators 2018-03-13 10:54:26 -04:00
Rob Rix
6d40ceba39 Comment out extraRoots to silence a warning.
We’re going to need it eventually but I’m not diving all the way down this rabbit hole just yet.
2018-03-13 10:54:21 -04:00
Rob Rix
e1fabf863b Rename the type parameter. 2018-03-13 10:24:21 -04:00
Rob Rix
9662ac23fb Use LiveFor/CellFor to tighten up some signatures. 2018-03-13 10:23:58 -04:00
Rob Rix
93e9d04c2f ValueRoots assumes the location type from the value type. 2018-03-13 10:22:15 -04:00
Rob Rix
1c826b5d6f Define a LiveFor synonym. 2018-03-13 10:21:45 -04:00
Rob Rix
f7cb9e7098 🔥 the MonadGC interface. 2018-03-13 10:10:30 -04:00
Rob Rix
235f982c91 Define getConfiguration to use askRoots. 2018-03-13 10:06:50 -04:00
Rob Rix
55310af7a8 Fix up the MonadAnalysis instance’s constraints. 2018-03-13 10:03:09 -04:00
Rob Rix
935e213cf3 Derive the extra instances. 2018-03-13 10:03:00 -04:00
Rob Rix
fb3b76fe3c Re-enable askRoots. 2018-03-13 10:02:54 -04:00
Rob Rix
ebdeb11db0 Merge branch 'decompose-monad-evaluator' into garbage-collecting 2018-03-13 09:58:27 -04:00
Rob Rix
8f6128c6e4 Merge branch 'master' into decompose-monad-evaluator 2018-03-13 09:48:14 -04:00
Timothy Clem
69b2c5c64d Sort out spechelper again with new interfaces 2018-03-12 16:13:21 -07:00
Timothy Clem
af66a0c229 Merge remote-tracking branch 'origin/typescript-exports' into import-language-tour 2018-03-12 15:40:22 -07:00
Timothy Clem
cc4fd12428 Merge remote-tracking branch 'origin/more-typescript-imports' into typescript-exports 2018-03-12 15:37:12 -07:00
Timothy Clem
08c59a43d2 Merge remote-tracking branch 'origin/master' into typescript-exports 2018-03-12 15:30:28 -07:00
Patrick Thomson
ce1a3d1e78 Merge remote-tracking branch 'origin/master' into tuples-and-variable-declarations 2018-03-12 16:56:42 -04:00
Patrick Thomson
578bb5c566 unnecessary import 2018-03-12 16:52:32 -04:00
Timothy Clem
c35cf73715 Go import from path parsing 2018-03-12 13:52:28 -07:00
Timothy Clem
a87f31fca2 Hack to handle Go modules defined across multiple files 2018-03-12 13:52:04 -07:00
Timothy Clem
2134325379 Helper to evaluate Go files 2018-03-12 13:51:33 -07:00
Rob Rix
ad07ee0fff Merge branch 'master' into decompose-monad-evaluator 2018-03-12 16:45:41 -04:00
Rob Rix
0e9ed4e9ae Use evaluateModule in load instead of evaluateTerm. 2018-03-12 15:59:19 -04:00
Rob Rix
32240e2864 Merge branch 'master' into re-enable-tracing-analyses 2018-03-12 15:59:00 -04:00
Rob Rix
3639743e73 📝 modifyModuleTable. 2018-03-12 15:35:09 -04:00
Rob Rix
76ba8963a9 📝 the new typeclasses. 2018-03-12 15:34:37 -04:00
Rob Rix
15771c5dc6 Explicitly list the Evaluator exports. 2018-03-12 15:32:55 -04:00
Rob Rix
3aa6a783cd 🔥 the default definition of getConfiguration.
This should enable us to wrap it s.t. using -XGeneralizedNewtypeDeriving will call overloads in downstream analyses.
2018-03-12 15:31:36 -04:00
Rob Rix
a1a7b8e3cc modifyGlobalEnv is strict in the new env. 2018-03-12 15:23:30 -04:00
Rob Rix
db80ec7afa modifyModuleTable is strict in the new table. 2018-03-12 15:23:07 -04:00
Rob Rix
23cc1eafc4 modifyStore is strict in the new store. 2018-03-12 15:21:28 -04:00
Rob Rix
b060a7a83a Move assign into Control.Abstract.Evaluator. 2018-03-12 15:19:28 -04:00
Rob Rix
49c63fac0a Simplify the MonadAddressable interfaces to use MonadStore. 2018-03-12 15:16:50 -04:00
Rob Rix
b32eaa967b Merge branch 'master' into re-enable-tracing-analyses 2018-03-12 15:13:50 -04:00
Rob Rix
8e9375c08b Replace askRoots with getConfiguration directly. 2018-03-12 15:09:51 -04:00
Patrick Thomson
3372c1a7ef Merge remote-tracking branch 'origin/master' into show-constraints 2018-03-12 15:02:22 -04:00
Rob Rix
6a53cf8da9 Factor the ModuleTable interface out of MonadEvaluator. 2018-03-12 14:59:42 -04:00
Rob Rix
591785cdbb Factor the Environment interface out of MonadEvaluator. 2018-03-12 14:55:27 -04:00
Rob Rix
84a59eeaf8 Factor the Store interface out of MonadEvaluator. 2018-03-12 14:51:49 -04:00
Rob Rix
f70ee19ce7 🔥 diffPatch 2018-03-12 14:45:22 -04:00
Rob Rix
26107bf1a0 Disallow specialization of getConfiguration. 2018-03-12 14:44:27 -04:00
Rob Rix
1ff21bf120 Collect after analyzing each term. 2018-03-12 14:42:52 -04:00
Rob Rix
845dcdfb80 Re-add the gc/reachable functions. 2018-03-12 14:38:50 -04:00
Rob Rix
efb70fbf7e Require a reader for the live set. 2018-03-12 14:36:59 -04:00
Rob Rix
9d7d604fb6 Define a MonadGC instance when we have a live set in the effects. 2018-03-12 14:36:13 -04:00
Rob Rix
d39c5758b9 Define MonadGC. 2018-03-12 14:35:57 -04:00
Rob Rix
8d1b80e599 Define a simple passthrough Collecting analysis. 2018-03-12 14:31:24 -04:00
Patrick Thomson
dfc4d786e5 documentation 2018-03-12 14:24:36 -04:00
Rob Rix
31dae8f671 🔥 Control.Monad.Effect.GC. 2018-03-12 14:24:28 -04:00
Patrick Thomson
e8c7389ffe Evaluatable instances for VariableDeclarations and tuple literals.
The VariableDeclaration instance just shells out to that for
Assignment, but required the addition of a concrete tuple typle for
cases such as `var x = 1, y = 2`. As an added bonus, we now get tuple
evaluations in Python.

This required a rejiggering of the Value type in Data.Abstract.Value -
it is now a newtype over the union that contains another Value type
recursively, analogous how Fix ties the knot over infinitely-nested
Functor values.
2018-03-12 14:19:29 -04:00
Timothy Clem
8ebcd5a864 Merge remote-tracking branch 'origin/master' into import-language-tour 2018-03-12 10:03:25 -07:00
Rob Rix
7794d9423b Merge branch 'master' into re-enable-tracing-analyses 2018-03-12 12:09:13 -04:00
Rob Rix
4e4a61f8fb Tweak to the docs for gather. 2018-03-12 11:42:46 -04:00
Rob Rix
35718fca96 Resume taking an explicit constructor in gather so it doesn’t have to be annotated with the type. 2018-03-12 11:42:14 -04:00
Rob Rix
82c578ed0d 📝 raise & lower. 2018-03-12 11:39:51 -04:00
Rob Rix
80f5a4e024 🔥 redundant extensions. 2018-03-12 11:37:56 -04:00
Rob Rix
fa4a74c3c1 Give a kind signature for Effectful’s parameter. 2018-03-12 11:37:23 -04:00
Rob Rix
5c415fee15 📝 Effectful. 2018-03-12 11:37:06 -04:00
Rob Rix
0171811da4 📝 trace. 2018-03-12 11:34:37 -04:00
Rob Rix
b21de35de8 More spacing. 2018-03-12 11:31:32 -04:00
Rob Rix
8cb9298f4c 📝 EvaluatingEffects. 2018-03-12 11:24:30 -04:00
Rob Rix
ecd0252c9c 📝 analyzeTerm. 2018-03-12 11:23:33 -04:00
Patrick Thomson
668fc45e63 add evaluateGoFile 2018-03-12 11:23:14 -04:00
Rob Rix
a222b10ded 📝 Caching’s RequiredEffects. 2018-03-12 11:22:15 -04:00
Rob Rix
63f8b113fd 📝 the CachingEffects list. 2018-03-12 11:21:13 -04:00
Rob Rix
3ef27e495f Spacing. 2018-03-12 11:19:52 -04:00
Patrick Thomson
8bebe26ea9 use the canonical definition of interface 2018-03-12 11:18:14 -04:00
Rob Rix
3bcb30dd67 📝 runAnalysis. 2018-03-12 11:17:42 -04:00
Patrick Thomson
8334619f95 DRY 2018-03-12 11:15:21 -04:00
Rob Rix
c4fa7d54a9 📝 RequiredEffects. 2018-03-12 11:14:23 -04:00
Rob Rix
e77553a3f0 📝 MonadCaching. 2018-03-12 11:11:49 -04:00
Patrick Thomson
547c2103b1 Merge remote-tracking branch 'origin/master' into go-evaluation 2018-03-12 11:09:56 -04:00
Rob Rix
7f70c6d7e7 📝 CachingAnalysis. 2018-03-12 10:45:17 -04:00
Patrick Thomson
6f6f90ac3b Add Show constraint to MonadValue to improve error messages.
Someday we will probably want our own bespoke `Debug` class so as to
save on compile times associated with generating `Show` instances. But
this is fine for now, and will also improve #1547.
2018-03-12 10:42:52 -04:00
Rob Rix
00a6c1ad3d 📝 runAnalysis. 2018-03-12 10:38:32 -04:00
Rob Rix
52afe01b00 Reformat the signature for runAnalysis. 2018-03-12 10:37:35 -04:00
Rob Rix
848e78f959 📝 liftAnalyze. 2018-03-12 10:36:51 -04:00
Rob Rix
d615c38132 🔥 liftEvaluate. 2018-03-12 10:35:22 -04:00
Rob Rix
06be4ab967 📝 evaluateModule. 2018-03-12 10:33:27 -04:00
Rob Rix
a6c1b3663d 🔥 some unnecessary qualification. 2018-03-12 10:29:45 -04:00
Rob Rix
1e3f4a0481 Give a type signature for parseFile. 2018-03-12 10:27:53 -04:00
Rob Rix
8101cde85e Slightly less clever definition of parseFile. 2018-03-12 10:27:24 -04:00
Rob Rix
c4f11ea6f3 Import monoidal maps under Monoidal. 2018-03-12 10:22:55 -04:00
Timothy Clem
a6bb1452dc Fix up TypeScript fromClause to support relatives paths hack 2018-03-09 15:54:29 -08:00
Patrick Thomson
019940401c no TypeApplications necessary 2018-03-09 18:19:54 -05:00
Patrick Thomson
5bd1ff40ef Implement evaluation over Arithmetic operations. 2018-03-09 18:13:09 -05:00
Timothy Clem
750cfc6b17 Merge remote-tracking branch 'origin/typescript-exports' into more-typescript-imports 2018-03-09 12:46:58 -08:00
Rob Rix
56db84b3f2 🔥 the Bifoldable/Bitraversable instances for Subterm. 2018-03-09 15:42:22 -05:00
Rob Rix
53517662cf Roll caching an action into MonadCaching. 2018-03-09 15:37:34 -05:00
Rob Rix
fbd5c04227 Better API for isolating the cache & caching new values. 2018-03-09 15:21:12 -05:00
Rob Rix
a5704f49df Improve the API for running an action with a new oracle. 2018-03-09 15:07:50 -05:00
Rob Rix
6535209dc9 Improve the API for consulting the oracle. 2018-03-09 15:06:18 -05:00
Rob Rix
346e2115e2 Evaluate the module in the underlying analysis. 2018-03-09 14:58:10 -05:00
Rob Rix
2109310e9e 🔥 memoizeEval. 2018-03-09 14:57:33 -05:00
Rob Rix
a717bd54f7 Converge for the whole module, not per-term. 2018-03-09 14:57:09 -05:00
Rob Rix
e0076f3fb6 Leave the default signature alone. 2018-03-09 14:46:28 -05:00
Rob Rix
546f8bb3ec modifyGlobalEnv is not primitive. 2018-03-09 14:41:27 -05:00
Rob Rix
b3efd3b1e2 putStore is primitive. 2018-03-09 14:40:30 -05:00
Rob Rix
8966824307 Rename lift to raise. 2018-03-09 14:36:16 -05:00
Rob Rix
d3ed05fe99 Derive a bunch more instances. 2018-03-09 14:32:48 -05:00
Rob Rix
06e0645f83 Rename CachingAnalysis to Caching. 2018-03-09 14:30:33 -05:00
Rob Rix
26295e0008 Rename DeadCodeAnalysis to DeadCode. 2018-03-09 14:30:01 -05:00
Rob Rix
bd9b231a83 Rename TracingAnalysis to Tracing. 2018-03-09 14:29:11 -05:00
Rob Rix
386807618a Only export the Evaluating type, evaluate, and evaluates. 2018-03-09 14:28:34 -05:00
Rob Rix
b2e687afd7 Only export the TracingAnalysis type. 2018-03-09 14:28:25 -05:00
Rob Rix
0d950057f6 Only export the DeadCodeAnalysis type. 2018-03-09 14:27:26 -05:00
Rob Rix
fa14baded7 Only export the CachingAnalysis type. 2018-03-09 14:27:00 -05:00
Rob Rix
9169a6134d Only export CachingAnalysis. 2018-03-09 14:26:30 -05:00
Rob Rix
13a6e14b58 Re-export MonadFresh & MonadNonDet. 2018-03-09 14:25:02 -05:00
Rob Rix
5887d4ef10 🔥 redundant Foldable constraints. 2018-03-09 14:21:14 -05:00
Rob Rix
08a707a7e2 Sort some contexts. 2018-03-09 14:20:53 -05:00
Rob Rix
e48bd18d88 Abstract the caching functions. 2018-03-09 14:19:37 -05:00
Rob Rix
e9ae4bb48b 🔥 the In/Out cache effect synonyms. 2018-03-09 14:13:47 -05:00
Rob Rix
bace1c3d74 Sort imports &c. 2018-03-09 14:11:43 -05:00
Rob Rix
b40d662690 Tidy up language extensions. 2018-03-09 14:08:46 -05:00
Rob Rix
5d99219f86 🔥 the DeadCode synonym. 2018-03-09 14:02:03 -05:00
Rob Rix
ebf7c039cd 🔥 Trace. 2018-03-09 14:01:52 -05:00
Rob Rix
c86a2a0d14 🔥 Tracer. 2018-03-09 14:00:09 -05:00
Rob Rix
621f6f45f0 🔥 a redundant export list. 2018-03-09 13:56:08 -05:00
Rob Rix
ab0adf7dc8 🔥 some redundant imports. 2018-03-09 13:56:00 -05:00
Rob Rix
6a99bb633c 🔥 some redundant constraints. 2018-03-09 13:55:33 -05:00
Rob Rix
bccfdbf4d3 🔥 a bunch of redundant constraints. 2018-03-09 13:36:16 -05:00
Rob Rix
90f6aec2cd Reformat deref & alloc. 2018-03-09 13:35:00 -05:00
Rob Rix
e33af1aa70 Simplify the superclasses of MonadValue. 2018-03-09 13:34:18 -05:00
Rob Rix
14e29254dd Avoid redundant functional dependencies. 2018-03-09 13:33:26 -05:00
Rob Rix
73086d9f63 Use runAnalysis to simplify evaluate/s. 2018-03-09 13:24:40 -05:00
Rob Rix
7702321f95 Eta-reduce the analysis type in runAnalysis. 2018-03-09 13:20:26 -05:00
Rob Rix
411de01585 Remove the effects parameters from MonadEvaluator and MonadAnalysis. 2018-03-09 13:17:48 -05:00
Rob Rix
c7bdb13cc4 🔥 the term & effects parameters from MonadAddressable. 2018-03-09 13:01:11 -05:00
Rob Rix
e224f0c80b 🔥 the effects parameter from MonadValue. 2018-03-09 12:57:20 -05:00
Rob Rix
836a76b2ea EvaluatingEffects doesn’t need to prepend. 2018-03-09 12:24:15 -05:00
Rob Rix
3b31cf1ec8 Merge branch 'master' into re-enable-tracing-analyses 2018-03-09 12:22:06 -05:00
Rob Rix
80035c8fbc Tidy language extensions. 2018-03-09 12:11:07 -05:00
Rob Rix
8299a2de68 Move runAnalysis into Control.Abstract.Analysis. 2018-03-09 12:09:25 -05:00
Rob Rix
97fbda62a4 Turns out yes! 2018-03-09 12:08:24 -05:00
Rob Rix
c0315632ae 🔥 the commented-out PythonTracer synonym. 2018-03-09 12:08:15 -05:00
Rob Rix
3cdbaecc93 Infer the effects to run analyses with. 2018-03-09 12:00:20 -05:00
Patrick Thomson
2e3c1d0715 Remove references to obsolete identifiers. 2018-03-09 11:36:37 -05:00
Patrick Thomson
ca0397ae40 Merge remote-tracking branch 'origin/master' into go-evaluation 2018-03-09 11:24:02 -05:00
Patrick Thomson
a883bf9ada 🔥 Control.Monad.Effect.Cache.
This interface has already been obsoleted—its only consumer has a
private interface for its caching functionality, and @robrix's work
will restore a generalized version. No reason to keep this about.
2018-03-09 11:11:09 -05:00
Rob Rix
0d040911eb Revert "Add a type family for the required effects."
This reverts commit cc352239fd94a6689ae3a03739b2feebbb7372ef.
2018-03-09 11:03:33 -05:00
Rob Rix
1fd764f05e Add a type family for the required effects. 2018-03-09 10:48:50 -05:00
Rob Rix
f68401e6d4 Leave a note to remind myself what the analysis type could be. 2018-03-09 10:32:48 -05:00
Timothy Clem
af376440f4 Re-enable import eval for langs without explicit exports 2018-03-08 15:59:12 -08:00