1
1
mirror of https://github.com/github/semantic.git synced 2024-12-28 09:21:35 +03:00
Commit Graph

1362 Commits

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