Rob Rix
f534844342
Define DeadCodeEffects in terms of EvaluatorEffects.
2018-03-07 10:28:23 -05:00
Rob Rix
ad234eb56b
Define TracingEffects in terms of EvaluatorEffects.
2018-03-07 10:27:31 -05:00
Rob Rix
743c17e74c
Extract an EvaluatorEffects synonym.
2018-03-07 10:24:07 -05:00
Rob Rix
0cc7ece380
📝 Tracer.
2018-03-07 10:21:40 -05:00
Rob Rix
83228ce526
Use the Tracer effect synonym in TracingEffects.
2018-03-07 10:21:02 -05:00
Rob Rix
762ab7f31d
Define a Tracer effect synonym.
2018-03-07 10:20:50 -05:00
Rob Rix
a3e500ca14
Define a Bitraversable instance for Subterm.
2018-03-07 10:18:37 -05:00
Rob Rix
26b34baf5e
Define a Bifoldable instance for Subterm.
2018-03-07 10:18:01 -05:00
Rob Rix
bd608f713c
Derive Foldable, Functor, & Traversable instances for Subterm.
2018-03-07 10:17:24 -05:00
Rob Rix
1072ab151b
Define a Bifunctor instance for Subterm.
2018-03-07 10:16:59 -05:00
Rob Rix
352fc2ff07
🔥 redundant constraints on evaluateTerm.
2018-03-07 09:14:38 -05:00
Rob Rix
89b0890336
Reformat TracingAnalysis onto a new line.
2018-03-07 09:09:13 -05:00
Rob Rix
758f1032c1
🔥 a redundant import.
2018-03-07 09:07:42 -05:00
Rob Rix
62a0548573
Re-export Subterm/SubtermAlgebra.
2018-03-07 09:07:37 -05:00
Rob Rix
beca16b30b
🔥 a bunch of redundant imports.
2018-03-07 09:05:53 -05:00
Rob Rix
85cea81d5c
Re-export a bunch of effect-related modules.
2018-03-07 09:03:51 -05:00
Rob Rix
fa6062fa9c
List the Control.Abstract.Analysis exports explicitly.
2018-03-07 09:02:51 -05:00
Rob Rix
b2f9b1f644
Align the effect comments.
2018-03-06 17:38:47 -05:00
Rob Rix
9563c4c309
📝 how to recover the linear/reachable state analyses.
2018-03-06 17:32:30 -05:00
Rob Rix
f78d8c717f
🔥 evaluateReach.
2018-03-06 17:31:15 -05:00
Rob Rix
927c3fe608
Generalize evaluateTrace to arbitrary trace types.
2018-03-06 17:31:01 -05:00
Rob Rix
3579304444
Sort the contexts of evaluateTrace and evaluateReach.
2018-03-06 17:29:32 -05:00
Rob Rix
833e6af0f5
Rename v to value.
2018-03-06 17:28:20 -05:00
Rob Rix
95510010ba
🔥 the commented-out evTell.
2018-03-06 17:27:06 -05:00
Rob Rix
68b7ffc612
Define analyzeTerm using getConfiguration.
2018-03-06 17:26:45 -05:00
Rob Rix
8be2e14849
Define getConfiguration in terms of askRoots.
2018-03-06 17:25:22 -05:00
Rob Rix
f6cd19ddb9
Add askRoots to the MonadEvaluator interface with a default definition.
2018-03-06 17:24:14 -05:00
Rob Rix
6650e4de4e
Define getConfiguration as a method on MonadEvaluator.
2018-03-06 17:21:46 -05:00
Rob Rix
4e9f13a035
Use the embedSubterm helper.
2018-03-06 17:18:00 -05:00
Rob Rix
ee911a0990
🔥 MonadTrace.
2018-03-06 17:14:52 -05:00
Rob Rix
c9a74da233
Re-enable the tracing analysis.
2018-03-06 17:13:58 -05:00
Rob Rix
ca32bdc551
Define 'analyzeTerm' for 'CachingAnalysis'.
2018-03-06 16:46:38 -05:00
Rob Rix
76c69dce45
📝 analyzeTerm.
2018-03-06 16:43:23 -05:00
Rob Rix
e0e1dc2e67
Reformat/expand the 📝 for evaluateTerm.
2018-03-06 16:43:15 -05:00
Rob Rix
b0b93c7147
Move the 📝 for evaluateTerm down.
2018-03-06 16:40:49 -05:00
Rob Rix
25e5af382e
Define dead code analysis using analyzeTerm.
2018-03-06 16:40:15 -05:00
Rob Rix
2ab50cda5e
Evaluation analyzes via eval.
2018-03-06 16:39:37 -05:00
Rob Rix
c68728ea06
Define an analyzeTerm method on MonadAnalysis.
2018-03-06 16:36:06 -05:00
Patrick Thomson
c3d01b6602
Resuscitate the caching evaluator.
...
The caching analysis had been disabled, as it was still written in the
open-interpreter style. This patch restores it, defining a
`CachingAnalysis` newtype that uses nondeterministic but convergent
caching in its `MonadAnalysis` instance. This also defines an
`embedSubterm` helper that is useful in defining new analysis passes.
Thanks to @robrix for 🍐 !
2018-03-06 13:51:00 -05:00
Josh Vera
7e22cf8f69
Merge pull request #1522 from github/haddock-fixes-mk2
...
Further fixes for Haddock syntax.
2018-03-05 16:59:29 -05:00
Patrick Thomson
b12caf004d
Further fixes for Haddock syntax.
2018-03-05 16:40:34 -05:00
Patrick Thomson
1549cbf00a
Merge pull request #1519 from github/if-evaluation
...
Support ifthenelse evaluation
2018-03-05 14:37:45 -05:00
Rob Rix
9ddf2a376f
Merge branch 'master' into if-evaluation
2018-03-05 09:47:37 -05:00
Rob Rix
ffa0a972ff
Merge pull request #1515 from github/evaluatable-simplification
...
Evaluatable simplification
2018-03-05 09:47:06 -05:00
Rob Rix
3ff77c9a9e
Merge branch 'master' into evaluatable-simplification
2018-03-05 09:41:14 -05:00
Patrick Thomson
70f30ab254
Merge pull request #1518 from github/graph-filename-module
...
Include module names in import-graph SymbolDeclarations.
2018-03-02 15:42:20 -08:00
Patrick Thomson
d4c39f075b
remove otiose comment
2018-03-02 15:35:37 -08:00
Patrick Thomson
1da2668d60
Fix end-to-end tests.
2018-03-02 15:30:51 -08:00
Patrick Thomson
226ff88723
Rename MonadFunction to MonadValue.
2018-03-02 11:45:56 -08:00
Patrick Thomson
cc487a3872
Evaluatable instance for If and NoOp.
2018-03-02 11:32:25 -08:00