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