Commit Graph

57 Commits

Author SHA1 Message Date
Fedor Isakov 76739d20d9 Minor refactoring and renaming in coderules runtime. Documentation.
Rename classes and methods to better reflect the intent.
Move test-related stuff to test util model.
2019-11-05 18:46:02 +01:00
Fedor Isakov 6af78d1b94 Make CoderulesHelper reference the relevant aspect clique.
It's important to keep reference to the aspect clique that used to instantiate
a particular helper. Later it can be used to identify the correct session token.
2019-10-19 22:15:52 +02:00
Fedor Isakov 51cc3a7afc Simplify working with SessionToken, drop a supefluous step. 2019-10-18 18:22:07 +02:00
Fedor Isakov 6c63cb409f Introduce Config component. Make typechecker pref page nicer. Consolidate all typechecking options.
A reusable Config app component to be responsible for all level of configurations: default/system/user/ui.
Swith to Config interface instead of map<string,Object> for options.
Add an UI option to control whether trace is enabled.
2019-10-18 11:58:51 +02:00
Fedor Isakov b46c394aba Minor refactoring: consolidate trace events and report items together. 2019-09-15 14:12:47 +02:00
Fedor Isakov 9f7b14ef8b Refactorings in coderules helper to better handle effects.
Introduce failure as effect value.
Avoid throwing exceptions on normal evaluation completion.
Drop ResumeNextStepException.
2019-09-15 10:14:04 +02:00
Fedor Isakov ad6864cfda Various refactorings in Step/Effect apis: simplifying the code.
Refactor Effect: drop type parameter, simplify usage.
Redesign the way values are provided by an Effect.
Simplify schedule method signature.
Drop scheduleWithTrace from Step interface.
Introduce ConfigureEvalStep.
Drop Step.Options.
Drop LocalEffect's.
2019-09-12 17:12:34 +02:00
Fedor Isakov 8b73b66e34 Introduce RepositoryProvider interface to provide access to context repository.
TemplateApplicationSession to provide repository to templates.
Supervisor subclasses to provide repository to predicates.
2019-09-12 17:08:02 +02:00
Grigorii Kirgizov aa96197085 Use Effect for passing SessionToken from EvaluateRulesStep. Use Step.Options for "is with incrementality" option. 2019-09-11 13:24:01 +03:00
Fedor Isakov adc115b164 Avoid failure on exception thrown from a template.
Produce a program even in case some of applied rules failed.
Allow to recover from failure in apply templates.
2019-09-10 18:37:12 +02:00
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 1636f18f73 Support navigating to rule from editor. Drop implementations of Reporting.report. 2019-09-04 16:53:03 +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 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 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 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
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
Grigorii Kirgizov cc20e9735b Extend TypesIndexCache & EvaluateRulesStep with storing and retrieving SessionToken 2019-08-22 15:19:58 +02:00
Fedor Isakov 1b1de4af47 Introduce options to coderules helper. Only turn on typechecking trace in UI. 2019-08-22 13:47:51 +02:00
Fedor Isakov 6290cbe152 Enable to open typechecking trace from message view; other changes.
Collect trace on every invocation of typechecking.
Drop usages of editor component from trace view.
2019-08-22 11:39:07 +02:00
Fedor Isakov 028683f394 Introduce combinable effects, refactor Step hierarchy to produce effects.
Step subclasses are meant to be immutable and stateless.
The state is now encapsulated in Effect subclasses, which can be combined.
Correspondingly, schedule now produces streams of effects.
2019-08-21 11:44:26 +02:00
Fedor Isakov 39c4499585 Refactor aspect lookup, introduce aspect clique to support multiple typesystems.
There might be several unrelated typesystems defined by languages imported into
a single model. A way to handle this is to use aspect cliques that correspond
to a collection of related aspects, which build a single typesystem.
2019-08-12 18:21:38 +02:00
Fedor Isakov 66c9222a95 Run migrations with MPS 2019.2 EAP3. 2019-07-26 17:27:18 +02:00
Fedor Isakov ca894c9030 Move control over reactor lifecycle to app plugin. 2019-07-26 17:17:07 +02:00
Grigorii Kirgizov 11712c7069 Restrict the notion of principal rule (as effect, match journal is shorter now). It also positively affected reporting, so switch reporting to the new way. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov 9b49c3f053 Fix tests for incremental tc of BL. Add more tests for types with bounds. Temporarily revert reporting method to the old one. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov 3d80841639 Switch ReportingSupervisor to handle RuleMatch. Add Supervisor using ProgramSpec instead of PrincipalOriginIndex. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov 78c0cc1559 Setup code for failing typechecking tests, add one. Extract Supervisor impl from ProgramEvaluator. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov b9309e6369 Add several tests of incr typecheck on BL. ProgramEvaluator now depends on ProgramProducer. 2019-07-26 17:00:31 +02:00
Grigorii Kirgizov ce9b91c4a5 Add basic tests for simple program analysis, add test helpers. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 6c4667e066 Add basic coderules program analysis for determining principal constraints 2019-07-26 17:00:30 +02:00
Fedor Isakov 79b08c6f83 Revert "Apply migrations from EAP3 and rebuild project."
This reverts commit 9c5bf858c3.
2019-07-26 15:30:30 +02:00
Fedor Isakov 9c5bf858c3 Apply migrations from EAP3 and rebuild project. 2019-07-19 12:28:27 +02:00
Fedor Isakov 9bd793c8ec Move the logic of updating TypesIndex to TypecheckingStep. 2019-06-07 09:16:21 +02:00
Fedor Isakov cd37daaa07 Apply migrations after switching to the latest EAP build of MPS. 2019-06-07 09:16:21 +02:00
Fedor Isakov 7061fff775 Update TypesIndex as a reactive step. 2019-06-05 16:16:00 +02:00
Fedor Isakov 17ed4642ae Apply all available automatic migrations. 2019-06-05 16:16:00 +02:00
Fedor Isakov aaec11de9b Adapt to the changes in reactor API. 2019-05-05 14:29:08 +02:00
Fedor Isakov 4389b349d7 Adapt to the changes in reactor API. 2019-05-02 14:59:57 +02:00
Fedor Isakov b1f7ba4ecf Drop usages of deprecated symbols in reactor API. 2019-05-02 14:46:57 +02:00
Fedor Isakov 478b43ce16 Drop usages of deprecated interfaces. 2019-04-26 00:22:02 +02:00
Fedor Isakov 99ea2a7b71 Switch to the latest revision of reactor lib (0.9.9). 2019-04-24 21:21:03 +02:00
Fedor Isakov 255b7061f7 Reorganize models/packages, restructure code components responsible for program building/evaluation. 2019-02-15 17:15:17 +01:00
Fedor Isakov 92faa816f8 Drop superfluous log statements. 2019-01-31 23:47:11 +01:00
Fedor Isakov 19ce84f7ef Switch to 2018.3 RC. Apply all migrations. 2018-11-28 16:48:59 +01:00
Fedor Isakov fc7b9d6caf Always report a failure during evaluation as a warning 2018-11-20 22:39:29 +01:00
Fedor Isakov c8a56558ae Always use trampoline as blocking scheduler. Avoids deadlocks when two threads wait on read lock, and EDT requests write. 2018-11-06 14:39:01 +01:00
Fedor Isakov 6788bcf7a1 Switch to latest reactor, update the API calls. Support EvaluationFailure and FailureHandler. 2018-11-04 13:10:40 +01:00