Fedor Isakov
205c01ae45
Reactor: optimize and cleanup ClassicTermTrie
...
Also drop obsolete implementation of TermTrie.
2021-04-19 22:37:23 +02:00
Fedor Isakov
96ac2b3160
Reactor: optimize and fix RuleIndex
...
Implement missing method ArgumentRuleIndex.clear().
General code cleanup and optimization.
2021-04-19 10:27:24 +02:00
Fedor Isakov
09149fd688
Types for j.m.l.smodel.query lang
2021-04-15 18:06:07 +02:00
Fedor Isakov
2f4f3dae6f
Minor optimization in smodel types: pull-style constraint
...
Instead of reactively create push-style constraint conceptHierarchy,
make it available on request, pull-style.
2021-04-15 16:56:11 +02:00
Fedor Isakov
ff6b5ec6ae
Apply migrations and rebuild project
2021-04-14 13:19:50 +02:00
Fedor Isakov
6ed5c3329d
Fix typing errors: specify correct type annotations
2021-04-14 11:59:09 +02:00
Fedor Isakov
700a7f56b4
Fix generator types
2021-04-14 10:55:29 +02:00
Fedor Isakov
8dbe0c212d
Fix smodel types
2021-04-14 10:54:10 +02:00
Fedor Isakov
3a70382202
Fix typesystem types: support for meet/join
2021-04-14 10:53:41 +02:00
Fedor Isakov
e76dab0d84
Fix logic and coderules types
2021-04-14 10:53:17 +02:00
Fedor Isakov
93fd42365a
Fix NodeWalker ignoring annotations
2021-04-13 22:57:06 +02:00
Fedor Isakov
4d1511d794
Reactor: drop most of incrementality- and preamble-related stuff
...
Neither incremental evaluation of program or "preamble" features
are useful, but they complicate things and cause major bugs.
2021-04-13 22:57:06 +02:00
Fedor Isakov
49357ab87a
Drop all usages of "principal store" and "preamble" feature
2021-04-13 22:57:06 +02:00
Fedor Isakov
54b8d42e52
Drop obsolete RuleMatcher implementation
2021-04-13 12:23:17 +02:00
Fedor Isakov
7f55407c7a
Rebuild project
2021-04-12 17:12:34 +02:00
Fedor Isakov
db7fbfc748
Minor optimization: precompute hash value
2021-04-12 12:50:31 +02:00
Fedor Isakov
8a00024658
Turn back on incremental rebuilding of RuleIndex
2021-04-12 12:49:58 +02:00
Fedor Isakov
c0601cb099
Optimizing types for more efficient evaluation
...
Replace "push" style genDecl constraint with "pull" schemeOf.
Mark rules as "auxiliary" to avoid these being included in
processing as dependencies.
2021-04-12 12:47:44 +02:00
Fedor Isakov
6970635bfe
Drop "withoutIncremental" option for tests, disable one test
...
Test DemoTypeClasses fails every once in a while.
2021-04-12 12:47:44 +02:00
Fedor Isakov
008887944d
Refactor "incremental" tests launcher to not rely on incrementality
...
The incremental algorithm using history and replay/revalidate of
matches is deprecated and will be removed soon. The incremental tests
are now relying on the UpdataRecorder and RulePlanHandler to
implement incrementality.
2021-04-12 12:47:44 +02:00
Fedor Isakov
1769998f7f
Implement Rule.isBasis contract, fix feedback basis processing
...
Invalidated rules set invalidates feedback that has any of them it in its basis.
Validated rules invalidates feedback that has all of validated
rules in its basis set.
2021-04-12 12:47:44 +02:00
Fedor Isakov
0cef5ad298
Introduce method isBasis to Rule class, use that for feedback
...
Feedback basis are calculated for rules in history that
are marked as "basis" instead of "principal".
2021-04-12 12:47:44 +02:00
Fedor Isakov
87a843088c
Cosmetics: report ERR on a query finished with !success status
2021-04-12 12:47:44 +02:00
Fedor Isakov
077e1564b4
Refactor and optimize RulePlanHandler, drop obsolete contracts
...
RulePlanHandler does not rely anymore on fixed total order of
input nodes in a given rule template. An update constitutes a list
of rules/reqs generated for a pair template+input node.
All hacks that use sets of rule IDs removed.
Also, support for "new" and "dropped" rules removed, incremental algorithm
no longer supported.
2021-04-12 12:47:44 +02:00
Fedor Isakov
1d1db7cba5
Disable all preamble-related stuff
2021-04-12 12:47:44 +02:00
Fedor Isakov
e8f54c74f4
Update MPS build number
2021-04-12 12:47:43 +02:00
Fedor Isakov
c37f8f82eb
Minor optimization: rely on variable count when mapping terms
2021-04-12 12:47:43 +02:00
Fedor Isakov
384fc5dce8
Adapt all predicates to try-tell protocol
2021-04-08 12:41:17 +02:00
Fedor Isakov
207be07df9
Introduce try-tell protocol for invoking predicates
...
The default tell protocol assumes an exception is to be thrown
in case predicate is not satisfied. This may lead to unnecessary
exceptions being thrown in a situation where a simple failure
status would have been sufficient.
2021-04-08 11:31:29 +02:00
Fedor Isakov
ca7f630235
Rebuild build solution
2021-04-08 09:08:24 +02:00
Fedor Isakov
3793b78efb
Types for j.m.baseLanguage.classifiers
2021-04-08 08:55:33 +02:00
Fedor Isakov
27420433dc
Types for j.m.lang.behavior
2021-04-08 08:55:33 +02:00
Fedor Isakov
5c13129daa
Fix type of logical variables in coderules types
2021-04-08 08:55:32 +02:00
Fedor Isakov
65b32a4f48
Fix lub processing in BL types
2021-04-08 08:54:46 +02:00
Fedor Isakov
1eadb46611
Fix smodel types: assign void type to operations w/o returned value
2021-04-08 08:54:22 +02:00
Fedor Isakov
d527d5a114
Suppress errors in test code
2021-04-08 08:53:30 +02:00
Fedor Isakov
d7ff661670
Types for j.m.l.test lang
2021-04-08 08:53:29 +02:00
Fedor Isakov
28dd6c7a12
Implement feedback invalidation based on (in)validated rules
...
Refactor supervisor/feedback consumer to support feedback basis.
Track (in)validated rules tags in RulePlanHandler.
Both (in)- and validated rules cause associated feedback to be cleared.
Disable passing SessionToken in WatchingIncremental strategy;
this forces the correct journal recording but turns off incrementality.
2021-04-08 08:51:40 +02:00
Fedor Isakov
c51a984648
Alternative solution for invalidating feedback
...
Introduce feedback basis to track dependencies on rules.
Index journal chunks by evidence for quick lookup.
The feedback basis is the collection of principal rules tags
from the justifications of the current match.
2021-04-08 08:51:39 +02:00
Fedor Isakov
7c89dfdffd
Refactoring in program producing: getting ready to drop incrementality
...
Optionally produce partial program in incremental mode.
A partial program includes all "static" rules plus the "required closure"
of all changed nodes.
Produce program for required nodes unconditionally.
Mark all rule updates as validated only if exlicitly asked for it.
2021-04-08 08:51:39 +02:00
Fedor Isakov
b5ffb8c83c
Drop TypesModuleOwner, stop caring to store types in a model
...
This feature causes major problems and is really hard to maintain,
while its utility is questionable.
2021-04-08 08:51:39 +02:00
Fedor Isakov
636c1a15ef
Use tmp model to render type in Show Type Action
2021-04-08 08:51:39 +02:00
Fedor Isakov
105fe1dd7e
Fix dataform type conversion to term/termlist
2021-04-08 08:51:39 +02:00
Fedor Isakov
6b3e74dda2
Fix conversions in tuple types
2021-04-08 08:50:50 +02:00
Fedor Isakov
f5b4b0edb0
Fix binary op in collections lang
2021-04-08 08:50:28 +02:00
Fedor Isakov
693c760618
Add types for j.m.l.test language.
2021-03-23 12:48:07 +01:00
Fedor Isakov
99e248c5b3
Fix incremental update of reported feedback
...
Correctly detect cache up-to-date.
Refactor feedback reporting, provide origin node as the key.
Drop invalidated feedback correctly.
Code cleanup.
2021-03-23 12:48:06 +01:00
Fedor Isakov
2977b4dd19
Extend expand macro operation with rule input parameter, fix tracking dependencies
...
Enable recording the dependencies while expanding macro.
Rename/refactor operations in UpdatesRecorder to reflect the intent
of adding the dependencies.
2021-03-23 12:48:06 +01:00
Fedor Isakov
258a190fde
Rebuild project.
2021-03-23 12:48:06 +01:00
Fedor Isakov
c451be1e8a
Update MPS build to use
2021-03-23 12:48:06 +01:00