Commit Graph

123 Commits

Author SHA1 Message Date
Fedor Isakov ab23988887 Profiling processing of occurrences. 2016-06-02 11:57:12 +02:00
Fedor Isakov 61b488aebd Cleaning up TermTrie code. 2016-06-02 11:56:14 +02:00
Fedor Isakov 8185605e99 Optimizing term trie and rules index. Using bitset to mark value tokens incidental with nodes in the "term superposition" of term trie. 2016-06-02 11:03:19 +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 d90c06f600 Unification feature: term wrapper to facilitate modal unification (such as b/w different meta levels). 2016-05-27 20:55:31 +02:00
Fedor Isakov 5c2b1539c9 TermTrie: introduce value tokens; ensure the value can be retrieved iff all the term's leaves match. 2016-05-27 20:55:31 +02:00
Fedor Isakov 1652eacfe3 Integrating TermTrie in the occurrence store. 2016-05-22 17:09:02 +02:00
Fedor Isakov e9969b08b7 Integrating TermTrie in the rules index, tests. 2016-05-22 15:44:35 +02:00
Fedor Isakov 82d5763039 TermTrie: maintaining the order of the values. 2016-05-19 20:31:05 +02:00
Fedor Isakov b42f005c7e TermTrie: supporting term variables. 2016-05-19 16:39:52 +02:00
Fedor Isakov a44366921b TermTrie: building an index of rules/occurrences from term values. Term variables not yet supported. 2016-05-18 15:44:56 +02:00
Fedor Isakov 0b689858b8 Restructure sources for reuse. 2016-05-17 11:51:40 +02:00
Fedor Isakov e1e642deca Optimizing logical observers manipulation: get rid of linear search. 2016-05-10 11:24:06 +02:00
Fedor Isakov 79e920c546 Refactoring utility classes to a separate package 2016-05-10 10:09:18 +02:00
Fedor Isakov b54673b5a8 Matcher optimizations: get rid of sequence and flatMap, re-implement iterating over MatchTrie using primitives, ensure no exponential search is necessary. 2016-05-10 10:04:32 +02:00
Fedor Isakov 261d414039 Fix unification for terms with references to external terms or vars, tests. 2016-04-28 12:13:01 +02:00
Fedor Isakov 22d208ee74 Two more optimizations in MatchTrie: early cutoff of deadend branches; ensure candidate occurrences match constraints. 2016-04-26 17:39:28 +02:00
Fedor Isakov b5f495d6f7 Another major optimization in the matcher: lazily initialize MatchTrie. Update OccurrenceStore on logical value updated. 2016-04-26 13:22:19 +02:00
Fedor Isakov 43e9b35e1e Some more minor optimizations in the match processing. Minor code refactorings. 2016-04-24 17:53:49 +02:00
Fedor Isakov 7095551b7f Minor optimization in the match processing. 2016-04-22 13:25:41 +02:00
Fedor Isakov 2d46cd9542 Rewritten Matcher to not rely on Sequence and flatMap, instead using MatchTrie. OccurrenceIndex interface made clear. Some minor code optimizations. 2016-04-21 20:49:06 +02:00
Fedor Isakov efc293b495 Switch to the latest version of Kotlin. 2016-04-17 15:47:41 +02:00
Fedor Isakov 90e28e7ac3 Major optimization in unifier: introduce InnerTerm, replace expensive calls with direct field access. 2016-04-16 20:50:06 +02:00
Fedor Isakov e2209fa93e Minor optimizations in unifier and matcher. 2016-04-16 19:23:19 +02:00
Fedor Isakov 8cb9c7af57 Minor optimizations and code cleanup in unification, removed dependency on dexx collections. 2016-04-15 15:39:34 +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 a290fe3c66 Integrate changes in the API: EvaluationSessionFauilure, alternation in Rule's body. 2016-04-11 15:32:43 +02:00
Fedor Isakov 678ab96773 Introduce HandlerFrame. Building the framework for supporting disjuctions in rule productions. 2016-04-08 16:02:28 +02:00
Fedor Isakov e55108030b Avoid dependency of Handler onto Solver. Access solver via the evaluation session. 2016-04-07 11:40:50 +02:00
Fedor Isakov d7c0060724 Make PropagationHistory persistent (functional). 2016-04-06 16:53:29 +02:00
Fedor Isakov a1a17426b7 Extract PropagationHistory. Code refactoring and cleanup in preparation to switching to persistent OccurrenceStore and Handler. 2016-04-06 13:23:04 +02:00
Fedor Isakov 15630b1582 Integrate changes in the API: EvaluationTrace. Updated the Handler to reflect the changes. 2016-03-17 13:45:50 +01: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 1b9e919345 Optimizing hasData/getData, avoid calling String.intern() too often. Some API documentation. 2016-03-10 16:07:42 +01:00
Fedor Isakov c8812c139e Adopted the unification lib as part of this project. 2016-03-10 12:14:18 +01:00
Fedor Isakov 851dd6fe69 Imported mps-unification project.
Merge remote-tracking branch 'unification/master'
2016-03-09 16:58:45 +01:00
Fedor Isakov 4b1db276bc Switch to persistent set of IdWrapper. Minor adjustments in the profiling setup. 2016-03-09 16:03:53 +01:00
Fedor Isakov 6089f8c5ff Optimize selection of rules to try based on the values in the constraint arguments 2016-03-09 15:14:51 +01:00
Fedor Isakov 64591e113b Attempting optimizations in the matcher. Minor refactorings. 2016-03-08 11:40:31 +01:00
Fedor Isakov ec6ce31cc2 Propagation history feature, tests. Minor refactorings. 2016-03-07 15:23:57 +01:00
Fedor Isakov 63bb7f578d Ensure the null value is never exposed when merging variable (ground-free) 2016-03-03 16:42:09 +01:00
Fedor Isakov 701a434d69 Reactivate occurrences on union of var arguments. Tests. 2016-03-03 12:58:53 +01:00
Fedor Isakov 286fa4c5e6 Clean profiler data at the end of session run 2016-02-24 14:55:15 +01:00
Fedor Isakov 6cfa569663 Switch to the latest Kotlin RC 1050 2016-02-11 16:49:36 +01:00
Fedor Isakov d38373fc79 No more dumping of activation stack on an error 2016-02-11 16:33:35 +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 fb65c965c4 Switch to Kotlin 1.0.0 RC 2016-01-25 23:17:59 +01:00
Fedor Isakov 322485c046 Index occurrences by value.
Lookup of occurrences in the store is forced to match value OR logical (probably need both).
2016-01-25 18:00:18 +01:00
Fedor Isakov c557bbab97 Force occurrences matching with free logicals to fail if no occurrences with those logicals.
Fix occurrence store to always take the representative of a logical.
2016-01-25 14:17:38 +01:00
Fedor Isakov ed76bdae73 Optimizing looking up constraint occurrences to complete a match.
Parent observer for logicals, maintaining the logical-to-occurrence index in occurrence store.
Some code refactoring.
2016-01-24 20:45:46 +01:00