Commit Graph

292 Commits

Author SHA1 Message Date
Fedor Isakov 5cf1b86f38 Fix compilation 2026-04-24 11:36:54 +02:00
Fedor Isakov 78deea3df2 Drop obsolete interface 2024-10-04 13:01:43 +02:00
Fedor Isakov 20a6b70de1 Minor optimizations of rule indexing/processing 2024-10-04 13:01:43 +02:00
Fedor Isakov 92a19a1ba4 Change API method signature for more optimal usage 2024-10-02 15:11:38 +02:00
Fedor Isakov a7d78907c0 Bump up reactor version to 0.9.21 2024-08-19 21:47:47 +02:00
Fedor Isakov cebf42bb4c Bump up conreactor version to 0.9.20 2024-08-05 17:35:38 +02:00
Fedor Isakov 38843c344e Drop obsolete and deprecated code 2024-08-05 17:35:38 +02:00
Fedor Isakov 3d57a5abc3 Refactor code for better readability 2024-08-02 09:57:55 +02:00
Fedor Isakov 7e0443059f Bump up conreactor version to 0.9.19 2024-07-22 13:32:06 +02:00
Fedor Isakov 890bc59932 Minor code refactoring and cleanup in "conreactor" 2024-07-19 16:37:05 +02:00
Fedor Isakov ed1280dcb0 Bump up version of "conreactor" 2024-07-01 15:28:33 +02:00
Fedor Isakov 964b2cea29 Minor optimizations and refactoring (TIntSet -> BitSet) 2024-07-01 15:28:20 +02:00
Fedor Isakov 740f478ae9 Introduce methods for (de)initializing Backend; drop ReactorLifecycle 2024-06-16 19:02:18 +02:00
Fedor Isakov cdb6c91958 Cleanup and refactor code for better readability 2024-06-14 13:42:46 +02:00
Fedor Isakov 73ad3373d7 Specify version for maven-jar-plugin 2024-06-13 21:26:03 +02:00
Fedor Isakov 506b245438 Drop obsolete deprecated code 2024-06-13 12:23:27 +02:00
Fedor Isakov 2e5517271d Drop deprecated code marked for removal 2024-06-13 11:02:34 +02:00
Fedor Isakov 2ce182c785 Auto-updated IDEA project files 2023-10-13 18:13:08 +02:00
Fedor Isakov 6d4001e175 Auto-updated files in IDEA project 2023-05-03 10:31:55 +02:00
Fedor Isakov e881bccfca Switch to Kotlin 1.7.0 2022-09-02 16:11:00 +02:00
Fedor Isakov 2730c02f4c Update JDK in conreactor 2022-09-02 15:50:00 +02:00
Fedor Isakov be1e4bac18 Bump up version of Kotlin and JUnit 2022-07-12 11:18:42 +02:00
Fedor Isakov 3b7eb7c210 Ensure failures has non-null message 2022-05-03 10:26:43 +02:00
Fedor Isakov a2dacdd75a Update reactor version to reflect major changes
Dropped all "incremental" stuff.
Occurrences and rules are no longer divided into "principal"
and others.
2022-04-25 12:14:22 +02:00
Fedor Isakov f965c6636d Drop obsolete incremental and principal stuff 2022-04-20 12:42:20 +02:00
Fedor Isakov 735c88cdba Drop unused code, cleanup and simplify code 2022-04-19 14:36:08 +02:00
Fedor Isakov e1f285ed35 Bump up reactor version 2022-03-15 12:10:48 +01:00
Fedor Isakov c90382ec8f Cleanup code, drop obsolete classes 2022-03-14 18:10:43 +01:00
Fedor Isakov ef3aec13d5 Drop obsolete features, cleanup code 2022-03-14 11:24:22 +01:00
Fedor Isakov d8eedd0c44 Cleanup code 2022-03-12 12:49:55 +01:00
Fedor Isakov 945088f72e Drop obsolete deprecated class, simplify code 2022-03-07 19:16:05 +01:00
Fedor Isakov dc4f046510 Cleanup and optimize Rule.Tag, drop unused methods 2021-05-18 12:32:03 +02:00
Fedor Isakov 4573764bb4 Reactor: introduce indexed term trie 2021-05-13 15:54:43 +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 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 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
Grigorii Kirgizov 2504b354f0 Implement fallback from incremental to default processing on unhandled cases (MPSCR-67) 2021-01-29 13:39:31 +03:00
Grigorii Kirgizov 98ee9f4da2 Add new incr stage for rewinding logical unification (MPSCR-67 & MPSCR-21)
For this several notions are introduced.
Logical variable is called "principal" if it is used in principal
occurrences and at some point during evaluation is unified or bound.
Principal occurrence is called "volatile" if it uses principal logicals.

PrincipalObserverDispatcher's task is to track volatile occurrences
by enabling uni observers on all free logicals in principal occ-s.

RewindVolatileOccurrencesStage then on events of incremental usage
of volatile occurrences (e.g. match on it, or continued activation)
resets journal cursor to the position of initial occurrence activation,
where it can be re-evaluated with fresh, unaffected, logicals.
It's the only stage that goes backwards in journal.

So in this way unification is incrementally cancelled.
link to MPSCR-62 (docs)
2021-01-29 13:39:31 +03:00
Grigorii Kirgizov eb1e646cd4 Minor refactoring: move OccurrenceContractObserver from ConstraintsProcessing into ProcessingStrategy
Rename NonIncrementalProcessing -> DefaultProcessing
Add GroundProcessing as common superclass to handle OccurrenceContractObserver
Add another test for this occurrence contract logic.
2021-01-29 13:39:31 +03:00
Grigorii Kirgizov e73394863e minor: Remove ignored test for not implemented and not needed feature of MatchJournal 2020-12-15 17:59:10 +03:00
Grigorii Kirgizov fd43cc560c refactoring: introduce Rule.Tag instead of several fields (basetag/tag/uniqueTag)
Allows to carry logically connected information in one object.
Needed for subsequent changes to ConstraintOccurrence, which
must have better information on source rule: rule template name.
Used by occurrence cache.
2020-12-15 17:59:05 +03:00
Fedor Isakov f6123273d4 Minor refactoring: drop usages of Program.rulesLists() method. 2020-12-01 21:55:17 +01:00
Fedor Isakov b51d8257ba Ensure runtime exceptions are caught when evaluating predicates.
An exception raised by a predicate solver must not break evaluation.
2020-11-24 13:41:24 +01:00
Grigorii Kirgizov 15d6fe8eae Introduce ProcessingSession for creating session from token & ending it
Introduced to discern incremental strategies: Full,Preamble,Default.
because how SessionToken is used and stored depends on it.
EvaluationSessionImpl now simply dispatches to it.
Also rename 'IncrementalProcessing' to 'ProcessingStrategy'.
2020-11-18 11:36:28 +03:00
Fedor Isakov a403b1a252 Update Idea project in reactor. 2020-10-23 12:26:30 +02:00
dependabot[bot] 7971353f31
Bump junit from 4.12 to 4.13.1 in /reactor/Test
Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-13 07:03:23 +00:00
Grigorii Kirgizov da27c7ccd4 Fix some tests given changes in Journal
Also enable old incr tests that failed b/of missing features.
Remove old flaky disabled test.
2020-09-01 17:01:06 +03:00
Grigorii Kirgizov 19fa16c731 minor: disable excessive traverse in Journal made for MPSCR-65. breaks 2 tests 2020-09-01 16:20:08 +03:00
Grigorii Kirgizov 96f0a2e037 Provide correct journal position for re-exec in continueReplacedHeads (fixes MPSCR-68)
Also completes MPSCR-65. Another test for it now passes.
2020-09-01 13:37:45 +03:00
Fedor Isakov 38e34b4431 Reinforce RuleIndex.update() to be independent of RuleDiff.
RuleDiff may not be in sync with RuleIndex's state.
2020-08-20 14:20:52 +02:00