Patrick Thomson
bbf814acc1
Merge remote-tracking branch 'origin/master' into import-graph-mk2
2018-06-26 13:49:24 -04:00
Rob Rix
f9722f15a8
Eavesdrop on Modules effects.
2018-06-26 10:59:39 -04:00
Rob Rix
aa2e0f47f3
interpose no longer takes the pure parameter.
2018-06-26 10:00:13 -04:00
Rob Rix
92d50024ee
Ditto for the call graph.
2018-06-22 10:34:24 -04:00
Rob Rix
9fa1befecb
Graph modules which don’t import, and aren’t imported by, other modules.
2018-06-22 10:33:29 -04:00
Rob Rix
dda4c00cb5
🔥 Evaluating.
2018-06-21 13:26:22 -04:00
Rob Rix
b9b52b55da
Use the currentModule synonym to clarify intent.
2018-06-21 11:02:27 -04:00
Rob Rix
b2a8168059
Abbreviate the Load edge construction.
2018-06-21 10:50:52 -04:00
Rob Rix
0e265cc4f6
Add edges for lookups.
2018-06-21 10:50:24 -04:00
Rob Rix
1cc372ab67
Export moduleVertex.
2018-06-21 10:42:47 -04:00
Rob Rix
a4d8b481be
Merge branch 'master' into higher-order-effects
2018-06-21 10:11:59 -04:00
Rob Rix
4e6c11faec
Rename graphingModulePaths to graphingModuleInfo.
2018-06-20 14:43:14 -04:00
Rob Rix
e863802944
Add an analysis to graph module paths.
2018-06-20 12:38:05 -04:00
Rob Rix
948e4f57b0
Fix some indentation.
2018-06-20 12:37:58 -04:00
Rob Rix
86d2930455
Generalize appendGraph.
2018-06-20 12:35:50 -04:00
Rob Rix
70047c3b48
Correct a couple of doc comments.
2018-06-20 12:32:34 -04:00
Rob Rix
e972abd2e3
Factor runFresh out of evaluating.
2018-06-20 12:17:46 -04:00
Patrick Thomson
1a09aae96a
Merge branch 'master' into import-graph-mk2
2018-06-19 16:04:34 -04:00
Josh Vera
cce18d9ecb
Merge branch 'master' into topologically-sorted-imports
2018-06-19 13:43:01 -04:00
Rob Rix
8f373155a8
Apply the $ hints.
2018-06-19 09:34:52 -04:00
Rob Rix
1b245278a1
🔥 the value parameter from Modules.
2018-06-18 13:18:20 -04:00
Patrick Thomson
659500551c
Merge remote-tracking branch 'origin/master' into import-graph-mk2
2018-06-15 19:30:50 -04:00
Rob Rix
ccbd880155
Re-export Lower in Prologue.
2018-06-15 11:41:15 -04:00
Patrick Thomson
19e7ff7510
Reinstate import graph functionality.
2018-06-13 12:47:35 -04:00
Patrick Thomson
36d5b7562a
Revert "gRPC import graph"
2018-06-13 12:34:35 -04:00
Rob Rix
5a6d39e7f5
Swap these for consistency.
2018-06-12 15:59:46 -04:00
Rob Rix
2e61eead4c
State nests leftwards.
2018-06-12 15:47:29 -04:00
Rob Rix
44d6ccf815
Require Effect instances all over the place.
2018-06-12 15:38:10 -04:00
Rob Rix
956959ac07
Swap the module table ordering.
2018-06-12 15:37:43 -04:00
Rob Rix
9bd39b251c
Align the derived EvaluatingState instances.
2018-06-12 15:30:15 -04:00
Patrick Thomson
9c758ad3fe
Lint
2018-06-12 14:00:51 -04:00
Patrick Thomson
81482ee696
Merge remote-tracking branch 'origin/master' into import-graph-mk2
2018-06-12 12:09:49 -04:00
Charlie Somerville
a9a49ec56c
remove value parameter from ValueRef
2018-06-12 14:23:48 +10:00
Patrick Thomson
a69b80d4f4
warnings
2018-06-08 17:10:25 -04:00
Patrick Thomson
14b01603e4
it works as long as you package the prelude and comment out Util
2018-06-08 14:40:12 -04:00
Charlie Somerville
ddb18160f7
Merge branch 'master' into charliesome/value-ref-address
2018-06-08 11:33:01 +10:00
Rob Rix
c74263d9d6
Revert "Variable lookup is total, failing when the Env effect is run instead."
...
This reverts commit b96aaffa19a548a0ff50c862460e1a12b4031e89.
2018-06-06 10:39:10 -04:00
Rob Rix
b19c381edb
🔥 the Fail effect.
2018-06-06 09:45:40 -04:00
Rob Rix
4003cd717d
Represent MemberAccess with a Name as its second field.
2018-06-06 09:20:15 -04:00
Rob Rix
3c5c0d8038
Rename unName to formatName.
2018-06-06 09:17:13 -04:00
Rob Rix
6fdf2c274e
Variable lookup is total, failing when the Env effect is run instead.
2018-06-06 08:22:42 -04:00
Patrick Thomson
4a7ebf71dd
Merge remote-tracking branch 'origin/master' into fix-maybe-language
2018-06-04 18:33:03 -04:00
Patrick Thomson
2a8e02856b
tentative commit to move from Maybe Language to Language.
...
should fix a lot of issues around decoding Maybe Language fields.
2018-06-04 14:54:30 -04:00
Patrick Thomson
7c9b1ec17e
Merge remote-tracking branch 'origin/master' into text-names
2018-06-04 11:46:54 -04:00
Charlie Somerville
7478c4a6de
Merge branch 'master' into charliesome/value-ref-address
2018-06-01 12:50:11 -07:00
Charlie Somerville
32268b1710
Merge branch 'master' into charliesome/value-ref-address
2018-05-31 20:34:05 -05:00
Charlie Somerville
207a105e94
raise FreeVariable error from address
2018-05-31 15:14:45 -05:00
Charlie Somerville
c358460155
clean up warnings
2018-05-31 13:04:55 -05:00
Charlie Somerville
3c38b5fa46
Merge branch 'master' into charliesome/value-ref-address
2018-05-31 11:54:44 -05:00
Rob Rix
6e482be698
Rename Store back to Allocator for now.
2018-05-31 10:21:57 -04:00
Rob Rix
798b65d82c
gc is an action in Store.
2018-05-31 09:40:06 -04:00
Rob Rix
a72515b858
Move gc/reachable into Control.Abstract.Heap.
2018-05-31 09:33:04 -04:00
Rob Rix
58b1de14fc
💄
2018-05-31 09:18:37 -04:00
Rob Rix
42540a1e20
Rename Allocator to Store.
2018-05-31 08:47:16 -04:00
Patrick Thomson
c4c92053de
cleanup
2018-05-31 00:10:45 -04:00
Patrick Thomson
d144087486
Merge remote-tracking branch 'origin/master' into text-names
2018-05-30 23:51:11 -04:00
Rob Rix
c5f3187946
Merge branch 'master' into swap-module-table-ordering
2018-05-30 18:57:38 -04:00
Rob Rix
969d31adbf
Swap the ordering of the evaluated module table.
2018-05-30 18:54:58 -04:00
Patrick Thomson
64fd3b0fcc
Use Text rather than ByteString for Name values.
2018-05-30 18:16:39 -04:00
Rob Rix
a6025262c5
🔥 the environment from EvaluatingState.
2018-05-30 15:32:54 -04:00
Rob Rix
7072b1f8dd
Don’t re-export Fail.
2018-05-30 15:19:50 -04:00
Rob Rix
d01ef4e0b7
🔥 the exports in the evaluating state.
2018-05-30 15:17:35 -04:00
Timothy Clem
f7448522c8
Merge branch 'master' into enhanced-json-output
2018-05-30 11:14:39 -07:00
Rob Rix
19d4ebefa4
🔥 putEnv.
2018-05-30 14:08:57 -04:00
Rob Rix
10d9454895
Converge locally w.r.t. the environment.
2018-05-30 14:05:42 -04:00
Rob Rix
a243f2d837
Evaluating runs the env state.
2018-05-30 12:52:30 -04:00
Rob Rix
707c5819df
🔥 redundant constraints.
2018-05-30 12:51:16 -04:00
Rob Rix
99b92d336f
🔥 redundant constraint.
2018-05-30 12:41:04 -04:00
Timothy Clem
cc3a6c1a52
🔥 ConstructorLabel and constructorLabel
2018-05-30 09:39:38 -07:00
Timothy Clem
51394186f9
Merge remote-tracking branch 'origin/master' into enhanced-json-output
2018-05-30 07:50:29 -07:00
Charlie Somerville
12c6c39861
cut State Environment over to Env effect
2018-05-30 09:48:16 -05:00
Rob Rix
2baf449d20
Merge branch 'long-live-the-address' into env-effect
2018-05-30 10:22:51 -04:00
Rob Rix
4f2df09a63
Merge branch 'the-address-is-dead,-long-live-the-address' into env-effect
2018-05-30 10:15:16 -04:00
Rob Rix
52e8502970
Rename Located’s fields to address….
2018-05-30 10:03:40 -04:00
Rob Rix
8fcffd0837
Rename the location type parameter to address.
2018-05-30 09:55:32 -04:00
Rob Rix
89ae7740ed
Use location instead of Address in the heap/env interfaces.
2018-05-30 09:25:32 -04:00
Rob Rix
0624afe626
Heap operates on locations.
2018-05-30 08:17:22 -04:00
Rob Rix
dcdcf52bea
Live takes locations, not addresses.
2018-05-30 08:05:23 -04:00
Rob Rix
4ae5cb5f4e
🔥 Live’s value parameter.
2018-05-30 08:03:38 -04:00
Rob Rix
d4d5cc04d5
Don’t provide a Reader for the default environment.
2018-05-29 21:41:04 -04:00
Rob Rix
9a8acdc328
Wrap an Address.
2018-05-29 21:23:50 -04:00
Rob Rix
5110a936a0
🔥 the value parameter to Live.
2018-05-29 21:21:43 -04:00
Timothy Clem
2d08451d87
Call [] Statements
2018-05-29 14:25:31 -07:00
Charlie Somerville
b72b442e0c
WIP Merge branch 'master' into charliesome/value-ref-address
2018-05-29 16:06:45 -05:00
Timothy Clem
d47a06d47f
🔥 IdentifierName
2018-05-29 13:49:55 -07:00
Timothy Clem
6acb7ffa21
Give our List constructors a real name in output
2018-05-29 13:43:19 -07:00
Timothy Clem
bda6dd29d6
Call it term instead of category
2018-05-29 13:43:19 -07:00
Charlie Somerville
e0b4be74a9
Merge branch 'master' into charliesome/value-ref-address
2018-05-29 11:38:09 -05:00
Rob Rix
d869fa4ec8
🔥 some redundant constraints.
2018-05-29 12:14:19 -04:00
Rob Rix
f5572e41ca
Use Member instead of Members everywhere!
2018-05-29 12:09:09 -04:00
Rob Rix
0354dc5330
Resume EnvironmentError at location, not value.
2018-05-28 15:29:24 -04:00
Rob Rix
eeb604569d
Merge branch 'master' into decompose-values
2018-05-24 09:11:19 -04:00
Charlie Somerville
10022d4de9
push Address location value into the guts of the evaluator
2018-05-23 14:55:44 -07:00
Charlie Somerville
12742d681d
ValueRef should contain addresses, not values directly
2018-05-23 13:36:08 -07:00
Rob Rix
12cec06dfe
Remove Environment’s value parameter.
2018-05-22 17:37:35 -04:00
Rob Rix
2a46f5ea6f
Remove Exports’ value parameter.
2018-05-22 17:31:41 -04:00
Rob Rix
0984c8c725
Add vertices for lookups.
2018-05-22 14:20:03 -04:00
Rob Rix
577e5e4ace
🔥 graphingLoadErrors.
2018-05-22 14:13:51 -04:00
Rob Rix
fd6dbe2ba1
🔥 a redundant constraint.
2018-05-22 13:56:39 -04:00
Rob Rix
a95b84ac2a
Don’t graph packages in graphingModules.
2018-05-22 13:56:20 -04:00
Rob Rix
f41a1e9f51
Define an analysis to just graph packages.
2018-05-22 13:54:11 -04:00
Rob Rix
51bdfc2c84
Eavesdrop on loads.
2018-05-22 13:52:13 -04:00
Rob Rix
26e83423e0
We don’t define any undecidable instances any more.
2018-05-22 13:47:11 -04:00
Rob Rix
a2bea05066
Construct package vertices in the helper.
2018-05-22 13:45:30 -04:00
Rob Rix
43a0956629
Don’t export packageGraph.
2018-05-22 13:44:36 -04:00
Rob Rix
69dbfda246
Use a single entry point to construct module vertices.
2018-05-22 13:44:01 -04:00
Rob Rix
6d99476997
Revert "Provide a state effect for the previous module."
...
This reverts commit b6a3904a8d15728c4b378cca78eafdfb074ce85d.
2018-05-22 13:35:05 -04:00
Rob Rix
cf2011a811
Revert "Set the current module state."
...
This reverts commit c098e4684f24d8c3c0fe785758eb154cce9cb3a7.
2018-05-22 13:35:03 -04:00
Rob Rix
036df2416d
Revert "Module inclusion uses the State effect."
...
This reverts commit 09b21e10807e27c6d5fc5b112478bfb60fc714bf.
2018-05-22 13:34:58 -04:00
Rob Rix
f9dea05ddb
Revert "Bind the vertex."
...
This reverts commit 8e861863a5cee81cab3c22ceb3b0fb626b95fa5d.
2018-05-22 13:34:54 -04:00
Rob Rix
5e029b8f48
Bind the vertex.
2018-05-22 11:25:49 -04:00
Rob Rix
4226bab371
Module inclusion uses the State effect.
2018-05-22 11:14:40 -04:00
Rob Rix
93c315402d
Set the current module state.
2018-05-22 11:03:36 -04:00
Rob Rix
a4f6b26ae0
Provide a state effect for the previous module.
2018-05-22 11:02:45 -04:00
Rob Rix
18b2cfc89f
Merge branch 'master' into decompose-values
2018-05-18 14:14:55 -04:00
Rob Rix
0cd428286d
Use unName exclusively.
2018-05-18 13:01:31 -04:00
Rob Rix
2c6f266945
Move Name into its own module.
2018-05-18 12:53:01 -04:00
Rob Rix
ca6b32378e
Merge branch 'master' into allocator-effect
2018-05-18 11:09:20 -04:00
Rob Rix
008f628b58
Tweak the Evaluatable re-exports.
2018-05-18 11:07:03 -04:00
Rob Rix
1d883f4969
Move value & subtermValue into Control.Abstract.Value.
2018-05-18 10:47:33 -04:00
Rob Rix
edde9765a8
EvalError doesn’t need the value parameter any more.
2018-05-18 10:45:31 -04:00
Rob Rix
b8ae1e5219
Fix up some fallout from the merge.
2018-05-16 19:13:38 -04:00
Patrick Thomson
dafb3edaf5
Merge remote-tracking branch 'origin/master' into update-fastsum
2018-05-16 18:26:43 -04:00
Patrick Thomson
322f348103
inj -> inject
2018-05-16 18:25:02 -04:00
Rob Rix
dfd422f03b
🔥 the unused Identifier newtype.
2018-05-16 17:35:40 -04:00
Rob Rix
073273706b
🔥 constructorNameAndConstantFields.
2018-05-16 17:35:03 -04:00
Rob Rix
eedaf28861
Merge branch 'master' into hash-syntax-directly
2018-05-16 17:33:27 -04:00
Patrick Thomson
28803beefd
Merge branch 'master' into update-fastsum
2018-05-16 16:50:41 -04:00
Patrick Thomson
6b0198cb00
Remove otiose -Sum prefixes from all Data.Sum operations.
...
There are no modules where we use both Union.inj and Sum.injectSum; as
such, it seems clumsy for such ubiquitous functions as inj and prj to
have such long names when there is no ambiguity. This restores the
codebase to much how it looked before we switched back to a richer
Data.Union.
2018-05-16 15:27:08 -04:00
Charlie Somerville
96f7b65775
Merge branch 'master' into charliesome/value-ref
2018-05-16 12:13:26 -07:00
Rob Rix
6baaadcc17
Compute labels over the syntax alone.
2018-05-16 14:36:33 -04:00
Rob Rix
2dd557064d
Merge branch 'master' into fix-abstract-semantics
2018-05-16 09:20:00 -04:00
Rob Rix
ae74957342
🔥 the unused call graph analysis.
2018-05-16 09:08:07 -04:00
Rob Rix
1fd381b0ce
Revert "Cache the environment at each program state."
...
This reverts commit 4c559aae6ad4f2adaeea58cc1ca37d64d97298d2.
2018-05-15 22:21:16 -04:00
Rob Rix
36075a3ff8
🔥 the InCache/OutCache synonyms.
2018-05-15 22:17:57 -04:00
Rob Rix
6f1c57086b
Cache the environment at each program state.
2018-05-15 22:02:18 -04:00
Rob Rix
77850bcead
Define a datatype holding the contents of the cache.
2018-05-15 21:53:22 -04:00
Rob Rix
8f23e1653c
Spell out the reference to the heap.
2018-05-15 21:51:46 -04:00
Rob Rix
5805a90f9c
Define a synonym for the contents of the cache.
2018-05-15 21:48:04 -04:00
Rob Rix
e677cd6700
Reset the environment on every iteration.
2018-05-15 21:37:48 -04:00
Rob Rix
ae85f16f03
Use synonyms for the in- and out-caches.
2018-05-15 19:24:02 -04:00
Rob Rix
57a365b82f
Reformat all the caching signatures.
2018-05-15 19:19:51 -04:00
Rob Rix
62d76f6a17
Swap the order of the params to converge.
2018-05-15 19:17:40 -04:00
Rob Rix
47e92a766f
Merge remote-tracking branch 'origin/master' into fix-abstract-semantics
2018-05-15 18:47:47 -04:00
Charlie Somerville
f19dabc20b
Merge branch 'master' into charliesome/value-ref
2018-05-15 15:46:25 -07:00
Charlie Somerville
6ab67e3762
fix up cache for ValueRef
2018-05-15 14:31:45 -07:00
Charlie Somerville
4bfc5f9ecd
rename subtermValue to subtermRef
2018-05-15 10:38:16 -07:00
Rob Rix
0f4efa278c
Run module & term analyses in TermEvaluator.
2018-05-15 12:50:38 -04:00
Rob Rix
75b11eab95
Generalize providingLiveSet over the Effectful context.
2018-05-15 12:43:05 -04:00
Rob Rix
16f07a17d1
🔥 Output.
2018-05-14 18:40:22 -04:00
Rob Rix
347c18861e
🔥 the CustomConstructorName typeclass.
...
We can define ConstructorNameWithStrategy 'Custom instances instead.
2018-05-14 11:07:49 -04:00
Rob Rix
eb41652cbd
Output to builders.
2018-05-11 16:37:04 -04:00
Rob Rix
28d4fc30fc
Placate hlint.
2018-05-11 14:55:49 -04:00
Rob Rix
8f4fb96836
Serialize import/call graphs to DOT.
2018-05-11 14:35:27 -04:00
Rob Rix
e723b07d1e
🔥 renderGraph.
2018-05-11 13:25:45 -04:00
Rob Rix
5722538805
Define Analysis.Abstract.Graph using Data.Graph.
2018-05-11 12:22:51 -04:00
Rob Rix
38463e0712
Re-export the Lower typeclass.
2018-05-11 12:21:49 -04:00
Rob Rix
d567e892e1
Define CallGraph as Graph Name.
2018-05-11 12:15:43 -04:00
Rob Rix
bc5862adef
🔥 some redundant language extensions.
2018-05-11 09:15:20 -04:00
Rob Rix
6ba840e90b
Go back to simple address types.
2018-05-11 08:35:43 -04:00
Rob Rix
db185d5e47
Move Located into Data.Abstract.Address.
2018-05-11 00:09:17 -04:00
Rob Rix
fe494ab5c4
Swap the order of the cell and location parameters to Cache.
2018-05-10 19:58:33 -04:00
Rob Rix
3a7ed73d66
Swap the order of the cell and location parameters to Configuration.
2018-05-10 19:57:15 -04:00
Rob Rix
2383cd05c5
Swap the order of the cell and location parameters to Heap.
2018-05-10 19:55:24 -04:00
Rob Rix
1fa5f9a44b
Parameterize Located by the cell type.
2018-05-10 19:33:11 -04:00
Rob Rix
2abfd92678
Bump effects for https://github.com/joshvera/effects/pull/43
2018-05-10 18:27:10 -04:00
Rob Rix
423c229c73
Parameterize Cache by the cell type.
2018-05-10 12:37:06 -04:00
Rob Rix
5d51eb9a5e
Parameterize Configuration by the cell type.
2018-05-10 12:33:49 -04:00
Rob Rix
dcad4d852c
Parameterize Heap by the cell type.
2018-05-10 12:31:12 -04:00
Rob Rix
c22b80ccba
Re-export Cell from Control.Abstract.Heap.
2018-05-10 12:30:15 -04:00
Rob Rix
e40a549ee3
Swap the order of the term & location parameters to Configuration, Cache, and Cacheable.
2018-05-09 13:46:40 -04:00
Rob Rix
4dca1c121e
🔥 the term parameter to Evaluator.
2018-05-09 12:35:01 -04:00
Rob Rix
db2c0e737e
Use resumeLoadError to tighten up graphingLoadErrors.
2018-05-09 12:27:35 -04:00
Rob Rix
a12383f6e1
Rename the LoadError constructor to ModuleNotFound.
2018-05-09 12:23:04 -04:00
Rob Rix
662e385b97
LoadErrors are resumed with the evaluated result, rather than the list of modules to evaluate.
2018-05-09 12:20:23 -04:00
Rob Rix
21717cd079
Use the full type for the modules field of EvaluatingState.
2018-05-08 16:42:27 -04:00
Rob Rix
bd0b7e965e
Define & use UnevaluatedModules/EvaluatedModules synonyms.
2018-05-08 14:19:25 -04:00
Rob Rix
cd16c36342
Merge branch 'master' into evaluate-closures-without-terms
2018-05-08 12:45:56 -04:00
Patrick Thomson
484011666c
Merge remote-tracking branch 'origin/master' into task-graph-traces
2018-05-08 11:56:20 -04:00
Patrick Thomson
e9feb98835
Convert Graph and Task to use effectful traces.
...
This also removes `trace` from Prologue, since the monadic version is better.
2018-05-08 11:48:00 -04:00
Rob Rix
7022fbf346
Provide the jump table in evaluatePackageBodyWith.
2018-05-08 10:04:23 -04:00
Rob Rix
3c73571b0c
Move currentModule/currentPackage into their own module.
2018-05-07 12:14:14 -04:00
Rob Rix
c2a8c0c5fa
Use the combined export module.
2018-05-07 11:54:13 -04:00
Rob Rix
57ddf31ec5
Move the Heap accessors into their own module.
2018-05-07 11:49:59 -04:00
Rob Rix
920ddd893f
Move the configuration accessor into its own module.
2018-05-07 11:49:47 -04:00
Rob Rix
d92a5d22a3
📝 the graphing handlers.
2018-05-07 08:35:49 -04:00
Rob Rix
be8dcef560
Accidental double-comment.
2018-05-07 08:31:58 -04:00
Rob Rix
0fddccf3c1
🔥 redundant parens.
2018-05-06 23:05:42 -04:00
Rob Rix
4f69f5e3de
Merge branch 'master' into scope-effects-to-evaluation
2018-05-06 22:50:04 -04:00
Rob Rix
de5d427b01
Placate hlint.
2018-05-06 19:49:29 -04:00
Rob Rix
709c672bbb
🔥 a redundant constraint.
2018-05-06 17:50:58 -04:00
Rob Rix
5f0d80a6b1
🔥 the Bad* modules.
2018-05-06 17:16:10 -04:00
Rob Rix
9e4e98b2a9
Define a parameterized handler for ValueError.
2018-05-06 17:12:12 -04:00
Rob Rix
e9bec37d6d
Define a parameterized handler for AddressError.
2018-05-06 17:08:49 -04:00
Rob Rix
55997e5c60
Define a parameterized handler for Unspecialized errors.
2018-05-06 17:05:34 -04:00
Rob Rix
df0f798299
Define a runEvalErrorWith handler.
2018-05-06 17:01:11 -04:00
Rob Rix
a47b4cb6f3
Define a parameterized handler for ResolutionError.
2018-05-06 16:50:49 -04:00
Rob Rix
71d5eebbab
🔥 Erroring.
2018-05-06 16:44:04 -04:00
Rob Rix
dcb771a29e
🔥 the TypeChecking module.
2018-05-06 16:41:36 -04:00
Rob Rix
136a9661d2
Split the LoadError handling out into a separate function.
2018-05-06 16:35:04 -04:00