Commit Graph

250 Commits

Author SHA1 Message Date
Fedor Isakov cdac933b0c Refactor TraceObject to contain all traces from all evaluation sesssion.
If multiple aspect cliques are used in a model, multiple sessions are launched,
which results in multiple traces.
2019-09-05 22:56:11 +02:00
Fedor Isakov 67284c802e Drop baseLanguage from imports in a sandbox model. 2019-09-05 22:56:11 +02:00
Fedor Isakov fc3b69f06e Make sure the "annotation" lang has a types aspect. 2019-09-05 18:53:52 +02:00
Fedor Isakov 43e34bd14e Redesing the way aspect cliques are processed.
An empty clique singifies that either none of the languages in the clique have the necessary aspects,
or that the "leaf" languages don't.
2019-09-05 18:53:27 +02:00
Fedor Isakov 1636f18f73 Support navigating to rule from editor. Drop implementations of Reporting.report. 2019-09-04 16:53:03 +02:00
Fedor Isakov e628ea350b Collect and index all feedback nodes. Support navigating to next/prev feedback. 2019-09-03 16:19:16 +02:00
Fedor Isakov ab8ec75878 Rewrite feedback handling without Reporting interface.
Instead of using the (deprecated) Reporting interface when handling
feedback, use the more straightforward abstract method.
2019-09-02 17:55:46 +02:00
Fedor Isakov 77be3869a4 Introduce target specification to provide feedback constraint.
One should be able to report issues with a target.
The target is normally inferred from the rule's origin, but sometimes it is
necessary to specify the issue's target explicitly.
2019-09-02 17:55:46 +02:00
Fedor Isakov 8b82d7ba4d Introduce origin block for specifying the constraint rule origin. 2019-09-02 17:55:46 +02:00
Fedor Isakov d279cc64ba Deprecate report operation and API. 2019-09-02 17:55:46 +02:00
Fedor Isakov 41c4c7e0a3 Fix provide feedback predicate to use the updated API. 2019-09-02 17:55:46 +02:00
Fedor Isakov 130c273980 Swith to using reactor lib 0.9.12. 2019-09-02 17:37:55 +02:00
Fedor Isakov 84d07ef5f4 Another strategy to deal with deadlocks: drop requirement to use EDT.
Typechecking needs a synch point to update its "types model".
Using either EDT or the sequential scheduler is unfeasible beacause
of possible deadlocks.
2019-08-29 13:19:22 +02:00
Fedor Isakov 46406f8917 Straighten up error processing when launching coderules. 2019-08-29 11:36:54 +02:00
Fedor Isakov 355a503f5e Various refactorings in trace and reporting.
Replace ReportSink with Consumer.
Rename TraceEventsCollector -> TraceEvents.
Collect report items in TraceObject.
Ensure messages view tabs stay pinned.
Enable navigation from messages view to source nodes.
Respect report item's severity.
2019-08-28 21:27:09 +02:00
Fedor Isakov 7956b8c89c Ensure type index update is run in EDT, avoid race condition. 2019-08-28 17:46:34 +02:00
Fedor Isakov 91f317b307 Ensure message view tab is disposed, avoid memory leak. 2019-08-27 11:55:35 +02:00
Fedor Isakov 5c239fb4b9 Fix Memoizer race condition. 2019-08-27 11:22:39 +02:00
Fedor Isakov 8d289021d1 Remove toxic imports. 2019-08-26 19:01:26 +02:00
Fedor Isakov 899d6b5208 Avoid producing NPE on missing template. 2019-08-26 17:14:39 +02:00
Fedor Isakov 17cb4654cf Introduce message handler parameter to rule application session.
In some situations it is unreasonable to fail on missing templates,
it's better to produce a working but perhaps incomplete program
than not to produce anything.
2019-08-26 16:53:04 +02:00
Fedor Isakov b79d174753 More fine-grained reporting of errors during coderules evaluation. 2019-08-26 15:27:04 +02:00
Fedor Isakov 388ea7e268 Minor refactorings in typechecking service. Display number of reported items with query. 2019-08-26 13:06:58 +02:00
Fedor Isakov c7ed81bd51 Switch to using MessageLog instead of the default message log. Minor fixes.
Collect coderules messages in "Messages" tab by default.
2019-08-26 13:06:58 +02:00
Fedor Isakov e60a2151c0 Avoid using executeCommand to schedule a message view update. 2019-08-23 12:48:43 +02:00
Grigorii Kirgizov a3451cb714 Use Effect for passing SessionToken from EvaluateRulesStep. Use Step.Options for "is with incrementality" option. 2019-08-22 23:04:05 +03:00
Fedor Isakov 279a048acd Fix reference to an API class. 2019-08-22 16:55:29 +02:00
Grigorii Kirgizov 224900fc88 Add option to Queries for enabling incrementality 2019-08-22 17:29:54 +03:00
Grigorii Kirgizov e7c0c0e3a0 Enable incrementality in TypecheckingStep 2019-08-22 17:15:15 +03:00
Grigorii Kirgizov dc32a149da Add preference for enabling incrementality 2019-08-22 17:14:44 +03:00
Grigorii Kirgizov 654e8b60cc Resolve rebase conflicts concenred with enabling incrementality in CoderulesTypecheckingProvider 2019-08-22 17:14:12 +03:00
Fedor Isakov f698d7dbdd Fix incremental evaluate step -- adapt to the changed API. 2019-08-22 15:30:55 +02:00
Grigorii Kirgizov cc20e9735b Extend TypesIndexCache & EvaluateRulesStep with storing and retrieving SessionToken 2019-08-22 15:19:58 +02:00
Grigorii Kirgizov af2faeb077 Remove dependencies on samples.baseLanguageExt and samples.lambdacalc from tests, fix build. Rebase onto master. 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 2b1ec4a4a6 Remove interprocedural version of analysis 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 944a181685 Switch basic principals analysis to fully gen-time impl 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 9843669f79 Remove old runtime coderules analyses 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov 37a6a4e1b7 Two more tests on FreeVarEscapeAnalysis for more complex cases. Extend checker logic for them. 2019-08-22 15:16:18 +02:00
Grigorii Kirgizov c6fc2c3f96 Test FreeVarEscapeAnalysis on full languages. Passes for BL, fails for lambdacalc as intended. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 1c9060b769 Add simpler analysis to answer a question "Is incrementality allowed for this Coderules aspect?". Add initial tests for it.
It is a rule-local, non-interprocedural analysis and it also uses VarAnalysisUtil.
New analysis checks whether free variables can "escape" principal constraint rules inside principal constraints.
If there is such escaped variable, then it is a signal that this type system is designed with non-local type inference in mind.
Otherwise there's no need to produce principal constraints with free logicals as arguments.
So, no principal constraints with free vars -- no type inference is possible.
2019-08-22 15:16:17 +02:00
Grigorii Kirgizov ae993f6868 Separate VarAnalysisUtil into base and impl part that handles impl of involved relations ("isAffected"). 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 87fb26b95b Fix NPE in access to hashmap in VarModificationAnalysis 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov e41589cd4a Fix few places in VarModificationAnalysis. Add tests for it (found some problems). 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov f1aa5cb923 Finish interprocedural part of VarModificationAnalysis. Add one more test for Var..Util. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 4ab877e822 Refine isAffected relation in VarAnalysisUtil: handle dep-s through composite logicals 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 62b08720cd Fix finding isAffected relation in var2notvar case by more carefully handling aliasing with "non-local" vars. Few more tests. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov f7040b1d8d Add metalogical aliasing in VarAnalysisUtil. Rewrite older analyses fully in BL and not template macros. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 8a2942c42b Move VarModificationAnalysisUtil to new model for analysis-related code 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 64230b0412 Add tests for VarAnalysisUtil. Update its semantics. 2019-08-22 15:16:17 +02:00
Grigorii Kirgizov 5f2b010e5b Add checking analysis for non-trivial var modification (e.g. unification) 2019-08-22 15:16:17 +02:00