Fedor Isakov
3193a9c078
Adjust nullability contract in occurrence matcher.
...
Term's symbol can't be null.
Also guarantee that when processing a match no null
values occur.
2020-02-28 17:42:54 +01:00
Fedor Isakov
01195cb1ac
Drop unused methods from Rule interface. To be reinstated in RuleEx.
2020-01-02 17:20:13 +01:00
Grigorii Kirgizov
95214fcae9
Rename 'handlers' in Program to 'rulesLists'
2019-11-06 19:10:29 +03:00
Grigorii Kirgizov
bfcee33ec9
Modify SessionToken to preserve old rules instead of tags & RulesDiff to also distinguish preserved rules
2019-11-06 19:10:29 +03:00
Fedor Isakov
7d308cb0e3
Experimental feature: Rules segmentation.
...
The rules index is extended to observe the segment path a rule belongs to.
An occurrence is bound to the rule that activated it and thus has an
associated segment path.
Rules to be picked for activation can be selected on the basis
of matched segment path.
2019-09-27 21:59:58 +02:00
Fedor Isakov
af212ca92e
Refactoring EvaluationSession(Ex): drop controller accessor.
...
The inverse reference to controller from Evaluation session considered harmful.
Drop controller from EvaluationSession, drop ask/tell from EvaluationSession, extend InvocationContext with controller and supervisor accessors.
2019-09-10 13:08:53 +02:00
Grigorii Kirgizov
906f919e16
Run coderules program analyses at generation stage. Extend Rule with basetag(). Adjust how rule_tag is generated for reuse in generator.
...
basetag() returns name of ConstraintRule without node id.
Check on whether Rule is principal are now done through basetag(), it's sufficient.
Add part of future analysis: CallerTableBuilder.
2019-08-22 15:16:17 +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
612f0a212c
Refine MatchHistory impl, extract interface for tests, add several tests.
2019-06-12 13:28:05 +03:00
Fedor Isakov
0e02bab768
Replace tag() method in rule with uniqueTag() returning Object. This
...
allows for further memory optimization.
2019-05-17 17:10:52 +02:00
Fedor Isakov
eb5b38384f
Rename Handler class in reactor API to RulesList.
2019-05-09 17:30:14 +02:00
Fedor Isakov
cc2774d66d
Refactorings in conreactor: better separation of concerns, cleaner interfaces.
...
Introduce Supervisor, extract evaluation-related stuff from Program, merge with EvaluationFeedbackHandler.
Move implementation of EvaluationFeedback to internal API, reduce number of public interfaces.
Cleaner interface for reporting feedback.
2019-05-05 13:52:26 +02:00
Fedor Isakov
09ca1f1236
Fix the Store implementation and the test harness to support incremental
...
program launch.
2019-05-03 22:03:17 +02:00
Fedor Isakov
13e8f4a205
Cleanup obsolete code in test helper.
...
Refactor mock program builder for ease of use.
2019-05-03 22:03:17 +02:00
Fedor Isakov
59b6fb09fe
Rename some API interfaces to better reflect the intent.
2019-05-02 14:46:58 +02:00
Fedor Isakov
e270655a7f
Drop deprecated stuff in reactor.
2019-05-02 14:46:57 +02:00
Fedor Isakov
3163324661
Deprecate unused Program's methods, remove unused code.
...
Amend the API to support justifications.
2019-05-01 15:36:59 +02:00
Fedor Isakov
a26dee8508
Merge API module into Core, drop API. Reactor lib to have only one jar.
2019-04-24 21:21:03 +02:00
Fedor Isakov
a9a7f66a3a
Refactorings and code cleanup in reactor lib. Documenting the code.
...
Breaking change: ReactorLifecycle to be used to initialize session
backend.
Remove deprecated stuff, deprecate some more.
Consolidate useless interfaces into bigger ones.
Extract interfaces for core classes, move implementation into "internal"
subpackage.
2019-04-24 21:21:03 +02:00
Fedor Isakov
8c25d50ea5
Introduce InvocationParameter to instantiateArguments.
2019-02-17 14:41:36 +01:00
Fedor Isakov
3f930ba530
Introduce solver() method to PredicateSymbol.
...
Drop requirement to provide evaluation session with list of solvers; remove unnecessary configuration step.
Minor refactorings in tests.
2019-02-17 11:39:56 +01:00
Fedor Isakov
c8d7e52b6f
Introduce feedback handling API to facilitate processing of messages during program evaluation.
...
Minor refactorings in conreactor. Drop deprecated stuff. Default implementations for deprecated methods.
2019-02-15 17:15:09 +01:00
Fedor Isakov
74402a8a1c
New rule matching algorithm
2018-08-03 11:48:23 +02:00
Fedor Isakov
0dcf1ecd81
Rename API interfaces for better readability.
2017-06-05 13:37:56 +02:00
Fedor Isakov
a23c0db226
Integrate unification into the Core module. Remove the unification lib and all its stuff.
2017-06-02 11:19:36 +02:00
Fedor Isakov
c5c198cf8b
Refactoring in the reactor API: move invocation/occurrence factory methods to evaluation session, enable access to logical context from an invocation.
2017-03-27 19:01:07 +02:00
Fedor Isakov
c68d9a0bd7
Refactoring the reactor API. Extract StoreView. Get rid of obsolete calls to SessionSolver, cleanup the interface. Introduce AbstractSolver. Move instantiation arguments to solver/program. Cleaning up the code.
2017-01-05 17:34:53 +01:00
Fedor Isakov
ebfe680aae
Refactoring the reactor API. Extract StoreView, get rid of obsolete calls to SessionSolver. Cleaning up the code.
2017-01-04 10:47:23 +01:00
Fedor Isakov
0771504044
Refactoring the reactor API, cleaning up the code.
2017-01-03 12:11:31 +01:00
Fedor Isakov
466c015263
Handlers to have multiple primary constraints. RuleIndex to select handlers with matching primary symbol, if a handler has one. Only "accept-all" handlers process non-primary constraints.
2016-12-28 12:54:19 +01:00
Fedor Isakov
26f12f187d
Refactor the evaluation controller to have handlers. RuleIndex to select handlers with matching primary symbol first, then the "accept-all" handlers. Tests.
2016-12-23 16:50:31 +01:00
Fedor Isakov
49a6ee0bd0
New naming convention for test helper classes (prefix Mock-).
2016-12-22 15:56:23 +01:00
Fedor Isakov
e80818607c
Introduce the Handler API.
2016-12-22 12:39:28 +01:00
Fedor Isakov
71810025e1
Itegrating the reactor API changes from the typechecker project.
2016-06-26 12:52:54 +02:00
Fedor Isakov
0f7ffd9141
Support for triggering arbitrary predicates on an occurrence match with a head's rule.
...
Properly handling constraint pattern/occurrence match with values/variables on either side using modal unificaiton.
2016-05-27 20:55:31 +02:00
Fedor Isakov
d0bf94fc91
Support body alternation in Handler. Adopt the changes in the API.
2016-04-15 13:59:23 +02:00
Fedor Isakov
8c103ddbd1
Integrate changes in the API imported from the Logic project. Change the code accordingly.
2016-03-16 16:26:25 +01:00
Fedor Isakov
701a434d69
Reactivate occurrences on union of var arguments. Tests.
2016-03-03 12:58:53 +01:00
Fedor Isakov
6cfa569663
Switch to the latest Kotlin RC 1050
2016-02-11 16:49:36 +01:00
Fedor Isakov
619337151f
Updated API sources from the latest version of Logic. Adapted to the new API. LogicalPattern -> MetaLogical. Renamed all *pattern entities. RuleBuilder for tests.
2016-01-29 14:41:57 +01:00
Fedor Isakov
3cf3f4b21d
Updated API sources from the latest version of Logic. Adapted to the new API. Invocation/occurrence arguments.
2016-01-13 23:09:53 +01:00
Fedor Isakov
e97b854f4c
Updated API sources from the latest version of Logic. Adapted to the new API.
2016-01-09 02:14:10 +01:00
Fedor Isakov
057c4d7c69
Logical value observers. Testing reactivation of constraint occurrences.
2016-01-08 15:11:09 +01:00
Fedor Isakov
b90bdc84c4
MemLogicalPattern. Switch to using MemLogical in tests.
2016-01-07 12:56:13 +01:00
Fedor Isakov
8aa6b04c70
Extract away program builder-related stuff: this part is going to be provided by the reactor's client
2016-01-07 12:07:55 +01:00