Fedor Isakov
4a84ebce5f
Apply migration to switch to BodyBlock.
2020-02-06 12:55:32 +01:00
Fedor Isakov
fa4537dbc3
Introduce BodyBlock to contain multiple body clause lists. Support multi-line body. Migration.
2020-02-06 12:50:26 +01:00
Fedor Isakov
71d2d8a340
Give more memory to gradle process
2020-02-06 11:24:16 +01:00
Grigorii Kirgizov
c6889be4e7
Consider possible errors at rule generation stage as non fatal and produce Program with some rules dropped (fixes MPSCR-38)
...
New Result.RECOVERED case-class is added which collects errors but doesn't fail.
Currently errors are collected but not reported.
2020-02-06 01:02:50 +03:00
Grigorii Kirgizov
7b168e40c7
Provide failure cause in ouput Effect to get more informative failures of Coderules on ApplyTemplatesStep (related to MPSCR-38)
2020-02-05 23:29:05 +03:00
Fedor Isakov
c353f89ea0
Apply migration to drop ParameterContainer.
2020-02-05 17:02:32 +01:00
Fedor Isakov
c15c6694de
Ensure all rule parameters of same type are displayed on separate lines. Deprecte ParameterContainer. Migration.
2020-02-05 17:02:31 +01:00
Grigorii Kirgizov
a1682106d8
Let Dispatcher handle future matches and don't store postponed matches (fixes MPSCR-37)
2020-02-05 18:52:18 +03:00
Grigorii Kirgizov
f61c436809
Add tests to verify expected behavior of repeated expansion of the same occurrence (MPSCR-37)
...
Tests are structured similar to how occurrences are processes with ExecQueue
and its 'postponedFutureMatches' in incremental processing in ConstraintProcessing.
Also don't ignore one old test.
2020-02-05 18:52:18 +03:00
Grigorii Kirgizov
238b9e10cf
Fix Rete RuleMatcher .forget method
2020-02-05 18:52:18 +03:00
Fedor Isakov
3f51c1e5c1
Apply migration that replaces empty logical type with term type.
2020-02-05 12:34:20 +01:00
Fedor Isakov
58a1cf16fe
Introduce TermType (term) to be represented as "DataForm" in runtime. Migration to specify term type where expected.
2020-02-05 12:24:40 +01:00
Grigorii Kirgizov
438d8e6e9a
Ensure rule tags of all dropped rule matches are propagated as algo output (MPSCR-32)
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
73ebfbe7d1
Use invalidatedTags info in TypeIndex to invalidate ReportItems
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
51ec8973d2
Add test to reproduce MPSCR-35
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
efd22872a9
Handle case of invalidating stale discarding matches (MPSCR-35)
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
18fc4592f0
Modify logging methods of MatchJournal to return logged Chunks
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
7074112b7c
Revert "Refine logic for finding activation Pos to correctly handle discarding rules"
...
This reverts commit 746c4808
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
3b0008ad22
Remove some unused code
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
840d02c9f7
Provide restricted version of MatchJournal.replay to utilize the descendants information of chunks
...
In some cases replay could 'overshoot' because the position replayed to was invalidated.
The natural way is to replay to the last descendant of such activated occurrence
and continue execution from here.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
ab3eb716ae
Refactor ExecPos from ExecQueue to work with OccChunk instead of any Occurrence
...
This interface change it means that only Occurrences from previous session can be reexecuted.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
b909706a04
Refine logic for finding activation Pos to correctly handle discarding rules
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
d7c2b7f977
Extend MatchJournal with replayUntil method
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
b2cf46f813
Refactor a bit of logic responsible for finding appropriate place for inserting descendant chunk
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
d69b7bff98
Fix incremental match insertion logic for corner case of rules of equal priority
...
Behavior was incorrect in the case of discarding rules.
Several discarding matches could appear on the same occurrence,
beacuase newer incremental matches were inserted before later one,
thus seeing their occurrence as still active and stored.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
3a15d40625
Update Supervisor and TypesIndex to incorporate changes in feedback reporting (MPSCR-32)
...
TypesIndex now invalidates report items from previous sessions not by node refs,
but by tags of rules which produced them. Set of invalidated tags is an addiitonal
output from incremental engine.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
a4b28509a8
Provide additional information about parent principal chunk to Feedback (MPSCR-32)
...
Allows to track connection between invalidated matches and reported feedback.
In future this Journal info can help in simplifying error reporting.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
119daf05d9
Restrict notion of a principal rule to not track unnecessary matches in journal
...
Now principal rule head must include only principal constraints or be empty.
Without this restriction journal may include stale chunks which have no information to invalidate them.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
e55e67bc08
Modify EvaluationResult to also return the set of tags of all invalidated rules (MPSCR-32)
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
1334c7c7a1
Fix missed dependencies when computing rule's uniqueTag (from nodes in macro expand)
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
046f4969e1
Remove unnecessary calls to EvaluationResult.storeView() to save some time
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
79c31a44ba
Handle journal reset for occurrences: upd their status (eg !alive). Add test for one error caused by it.
...
Occurrences which weren't yet activated (according to current journal position) can't be reactivated.
Test program is an example of such case.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
ba8d00c224
Handle incr exec of cases unhandled with introduced mem opt. Added test passes.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
9aaf35561a
Mem opt: store RuleMatchers only for principal rules between sessions. Add a test for incr processing.
...
The number of preserved matchers is around 4-10 times less.
The added test is an example of programs handled incorrectly with this opt. Fails now.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov
54fc91a031
Fix and reenable 3 tests on incremental typechecking disabled in fa7532f3, enable few older tests for previously missing bl machinery
2020-02-05 12:29:33 +03:00
Fedor Isakov
b6e4e80010
Coderules/logic editor: support entering standalone item as logical clause, allow to type = and == naturally.
2020-02-04 17:34:38 +01:00
Fedor Isakov
9403087c11
Drop RepositoryProvider interface (unused).
2020-02-04 11:43:20 +01:00
Fedor Isakov
5a20630f3d
Suppress errors reported by constraints on ProjectExpression.
...
This enables check project to succeed without breaking the build.
2020-02-03 12:11:49 +01:00
Fedor Isakov
5b7bdc5838
Add error annotations on test data where errors are expected.
2020-02-03 12:00:44 +01:00
Fedor Isakov
e3580d489e
Update github status buttons.
2020-02-03 11:26:11 +01:00
Fedor Isakov
391c9053b5
Apply migrations after switch to MPS 193. Regenerate project.
2020-02-03 11:24:22 +01:00
Fedor Isakov
2345b8afa3
Switch to MPS 2019.3.1 release
2020-02-03 11:12:03 +01:00
Fedor Isakov
97353bfd89
Ensure collected report items are always forwarded from checkRecursively query.
2020-01-24 15:03:44 +01:00
Fedor Isakov
73f8179db7
Implement watching and incremental strategies in typechecking service.
...
Fix errors not always being reported to checkRecursively.
2020-01-24 15:02:34 +01:00
Fedor Isakov
a5171cbffd
Add an option to turn watch for model changes on/off.
2020-01-23 14:45:52 +01:00
Fedor Isakov
22c09152d5
Ensure TypesIndex keeps unique node report items.
2020-01-23 12:50:19 +01:00
Fedor Isakov
28355b99f4
Document/refactor/cleanup UpdatesRecorder for better code readability.
2020-01-22 18:00:57 +01:00
Fedor Isakov
612b1aa098
Make Factory instance in TypecheckingService volatile, fix MPSCR-26.
2020-01-21 17:50:06 +01:00
Fedor Isakov
fd300e3e07
Add null guard before invoking pattern match, avoid NPE.
2020-01-21 15:32:46 +01:00
Fedor Isakov
e763b0a3eb
Fix maven source plugin's version
2020-01-20 19:43:56 +01:00