Commit Graph

1716 Commits

Author SHA1 Message Date
Grigorii Kirgizov 5414fe7e67 Move RulesDiff construction from reactor to coderules runtime. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov a2672ad20a Include into ProgramGenInfo info about node parents.
This info about AST deps between nodes is needed to find
additional rule matches that must be also invalidated.
2019-07-26 17:00:30 +02:00
Grigorii Kirgizov d96ef01f98 Extend ProcessingStateImpl & RulesDiff for additional part of invalidation stage 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 769e7fd2ba Fix small issue related to mutable justifications in Occurrence. Upd tests with latest changes. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov ef2627cab4 MatchJournal now adds chunks for principal occurrences: search is simplified, case of several principal occs in rule is handled. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 43a8838c5a Handle the case of pattern logicals for finding principal constraints. Add rules from queries as principals too. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov b560bbbd30 Separate incremental tests on testlang and baselang into their own models. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 384782e708 Make Rule.uniqueTag() depend on snodes used inside rule template.
When data used in a rule changes, it must get to the RulesDiff.
RulesDiff works using tags, so tags must change when snode data changes.
2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 9a22149a5c Add some debugging info for incremental lang typecheck tests 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov ed93865359 Refactor MatchJournal.Pos. Make RulesDiff usable in coderules mps code. Extend EvaluationTrace. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 49aa913556 Move MatchJournalImpl to its own file. Some docs for it. Hide underlying mutable history behind immutable List. Add string tag() to Rule. 2019-07-26 17:00:30 +02:00
Grigorii Kirgizov 46b9435204 Add basic test for incrementality & rename test model 2019-07-26 17:00:30 +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
Grigorii Kirgizov 155266d8ca Abstract java interfaces for incrementality-related classes for interop between reactor and coderules 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 274f1f5a8d Fix tests: use only string value for properties for now. 2019-07-19 12:28:27 +02:00
Fedor Isakov 9c5bf858c3 Apply migrations from EAP3 and rebuild project. 2019-07-19 12:28:27 +02:00
Fedor Isakov 58db91822b Adapt to changes in typechecking facade API. 2019-07-19 12:28:25 +02:00
Fedor Isakov 0c3c928c79 Switch to MPS 2019.2 EAP3 2019-07-19 12:28:25 +02:00
Fedor Isakov 80b078491d Implement new method defined in TypecheckingQueries. 2019-07-19 12:28:25 +02:00
Fedor Isakov 6c0aeac109 Add TC build status widget for EAP builds 2019-06-25 11:24:09 +02:00
Fedor Isakov 0615c69143 Switch to using MPS 192 EAP2 2019-06-25 11:20:45 +02:00
Fedor Isakov edf3071bce Add SuppressErrorsChecker to the list of checkers used during build. 2019-06-25 11:20:45 +02:00
Grigorii Kirgizov 5995b3a2f9 Simplify last test in TestStoreAwareJournal 2019-06-17 19:31:43 +03:00
Grigorii Kirgizov 022a9c372e Avoid searches of principal occurrence by utilizing MatchJournal.Index 2019-06-13 21:30:20 +03:00
Grigorii Kirgizov 65f1198a60 Prune the whole related state in RuleMatchers on removal-phase. Add test case. 2019-06-13 20:10:08 +03:00
Grigorii Kirgizov 7acbbc3988 Fix tests 2019-06-13 18:01:35 +03:00
Grigorii Kirgizov d1152128da Remove kotlin imports 2019-06-13 18:00:04 +03:00
Grigorii Kirgizov 9863569323 Tests for incrementally removing and removing+adding rules 2019-06-12 19:09:06 +03:00
Grigorii Kirgizov d7b7d40f8a Don't expose InitialRule to RuleDiff. Add first test for rm algo stage. 2019-06-12 14:56:57 +03:00
Grigorii Kirgizov 0bfe9e8a47 minor: remove usages of Constraint.isPrincipal in ProcessingStateImpl, use IncrementalProgramSpec instead 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov ae20c334b4 Discern incremental reactivation from usual one. Fix postponedMatches logic. 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov b3e0770939 minor: slightly rearrange code in ProcessingStateImpl 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov a5a46d6c67 Add incrementality test for one nontrivial case in RuleMatchFront.expand 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov db80dc7ab6 Extract rule ordering logic from ProcessingStateImpl 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 175d9f7623 Move StateFrameStack class to its own file 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov a2d55e92b9 Remove accidental line duplication 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 2a5f9e28dc Fix handling of postponed matches (match order comparison was slightly wrong) 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 5a9019e85c Fix bits of logic responsible for launching 'at-start' rules through 'main'. Fix handling of discarded occs 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 767eb057f5 Add helper method in Tests builder, adjust few tests with it 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 50fcfd0d8a Add initial version of logic for handling future matches in processActivated() 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov dffab2016c upd gitignore 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov fa380c9f36 Fix failing build of coderules because of changed interfaces 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 3e50f47f73 Add MatchJournal.Index for additional queries and operations involving ordering of occurrences 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov eec343f902 Add stub code for handling case of adding headless ('at-start') rules 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov c0cb26d598 Add two more tests for addition phase. Handle one additional case and make one test pass. 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov ddb67690f4 Add partial sketch of removal phase of incremental algorithm.
For that: Extend DispatchingFront and RuleMatcherImpl interface with
'forget' methods which completely drops related matches from matchers' state;
Extend MatchJournal & Chunk interfaces with helper methods.
2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 8b4d98f6e2 Add few more checks in TestIncrementalProgram tests and one test in TestStoreAwareJournal 2019-06-12 13:28:06 +03:00
Grigorii Kirgizov 5b500340e5 Make StoreAwareJournal a pure interface, move delegated inheritance to StoreAwareJournalImpl (hide journal) 2019-06-12 13:28:06 +03:00