Commit Graph

1916 Commits

Author SHA1 Message Date
Fedor Isakov 8ce96ec41e Introduce an abstraction layer of type aliases for persistent collections. 2019-09-30 16:31:59 +02:00
Fedor Isakov 04164e1039 Add some more profiling blocks. 2019-09-30 16:31:59 +02:00
Fedor Isakov 38e71db7e8 Revive and refactor ReteNetwork-based rule matching algorithm.
ReteNetwork is faster on large samples.
RuleMatchingProbe is mutable and not persistent, no need to update value.
2019-09-30 16:31:59 +02:00
Fedor Isakov f9b38113f5 Refactor and cleanup Dispatcher for better readability. Drop hacky stuff. 2019-09-30 16:31:59 +02:00
Fedor Isakov 60c39f2811 Add a test for a peculiar use case. Only triggered in production. 2019-09-30 16:31:59 +02:00
Fedor Isakov f21c01246f Introduce feature: optimize rule index for arguments matching.
RuleIndex indexes rules by constraint arguments value.
The additional feature allows to keep indexed also the head position
of the matched constraint.
2019-09-30 16:31:59 +02: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 6b2a14511f A little documentation for RuleMatcher. 2019-09-27 21:59:57 +02:00
Fedor Isakov d5bdcc971f Remove accidental modules from the project. 2019-09-27 21:59:57 +02:00
Fedor Isakov 3ff016d989 Optimizing rule matching algorithm for performance. 2019-09-23 11:27:54 +02:00
Fedor Isakov b8cf79e8e2 Renamed JB SDK to JB JDK 2019-09-23 11:27:54 +02:00
Grigorii Kirgizov b362f55b25 Fix error annotations to be on args in method calls tests. Unsilence incremental tests, same arg fix. 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov c0e4bb1d1a Fix reporting on argument nodes in MethodCall rules 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov 51258b5179 Silence two tests on incremental typechecking concerned with method calls 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov ace483a61d Add tests on varargs. Adjust two error annotations. 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov b4f2d88123 Add rules for checking method arguments incl. variable argument 2019-09-16 13:56:23 +03:00
Grigorii Kirgizov d251f626fa Remove Scratchpad that accidentally found its way into test suite 2019-09-16 13:56:23 +03:00
Fedor Isakov 30e3400859 Implement isUpToDate check for types index cache. 2019-09-16 11:02:59 +02:00
Fedor Isakov b46c394aba Minor refactoring: consolidate trace events and report items together. 2019-09-15 14:12:47 +02:00
Fedor Isakov 9f7b14ef8b Refactorings in coderules helper to better handle effects.
Introduce failure as effect value.
Avoid throwing exceptions on normal evaluation completion.
Drop ResumeNextStepException.
2019-09-15 10:14:04 +02:00
Fedor Isakov 0b917fea92 Fix memory leak in Action Trace. Closing the tool itself closes all tabs.
The default functionality of "Close" action provided for tools is not enough to implement
a close action: the contents are still registered in the Disposer and the memory is leaked
as a result.
2019-09-13 15:56:11 +02:00
Fedor Isakov 1cbd5defff Drop PrintDelegate stack, avoid memory leaks. 2019-09-13 13:44:23 +02:00
Fedor Isakov 2942c244a6 Move model access out of coderules evaluation, avoid "read access violation".
It's doubtful this check belongs here, but let's keept it for now.
2019-09-13 13:00:03 +02:00
Fedor Isakov 6938a8108b Drop superfluous check involving smodel access.
Typechecker should be occupied with checking types, not the model validation.
2019-09-13 11:31:18 +02:00
Fedor Isakov eda493f672 Fix typechecking of VariableArityType.
Parameter was defined as list instead of child.
2019-09-13 11:28:34 +02:00
Fedor Isakov ad6864cfda Various refactorings in Step/Effect apis: simplifying the code.
Refactor Effect: drop type parameter, simplify usage.
Redesign the way values are provided by an Effect.
Simplify schedule method signature.
Drop scheduleWithTrace from Step interface.
Introduce ConfigureEvalStep.
Drop Step.Options.
Drop LocalEffect's.
2019-09-12 17:12:34 +02:00
Fedor Isakov 068ce227c3 Avoid propagating runtime exception from program evaluation. 2019-09-12 17:08:02 +02:00
Fedor Isakov 8b73b66e34 Introduce RepositoryProvider interface to provide access to context repository.
TemplateApplicationSession to provide repository to templates.
Supervisor subclasses to provide repository to predicates.
2019-09-12 17:08:02 +02:00
Grigorii Kirgizov 332735e770 Remove unneded handler 2019-09-12 15:29:14 +03:00
Grigorii Kirgizov cdfe1f2c0c Update language version after migrations from mps.logic lang 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 85b074d189 Make ListNodeCons migration a bit more restrictive 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov a9cf2e5589 Fix inf recursion in recovering intersectionType 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 9a782fc619 Run 'list literal -> cons list constructor' migration on samples 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 135724a481 Fix use case of list matching with any list 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 39fa007310 Run Splice migration on samples 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 7242e832b1 Upd mps.logic lang version 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov fc1caf1238 Fix Remove_Splice_from_ListNode migration 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 163e339436 Add migration for replacing List usages for ConsList constructor usages 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 3ff9ccb0c6 Add wrapping substitute menu for LogicalDataForm concept 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov cfe0b1b648 Add ListNodeCons DataForm: another constructor for ListNode similar to Haskell's `head:tail` constructor 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov edbd77c748 Prepare for migration from spliced Logicals in ListNode to LogicalDataForm 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 1e23572397 minor change of method use in BaseHelper 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 005dfa1e33 Fix reporting for typechecking of arrays in bl 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 6a02be6f6e Avoid nested empty lists in mapped ListNode.Alias. Fix capture in lcta helper for lub. Add test for lub.
The problem with empty lists showed up at least in printing lists.
2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 442d15204c Add capture conversion for type variables produced by LUB 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov a8cb00c8b5 Handle recursive case of LUB: produce wildcard type param 2019-09-11 13:24:02 +03:00
Grigorii Kirgizov 618524bdff Fix Forall term in lambdacalc with recent changes 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 37be72d9cf Refactor generation of ListFeature & 'spliced' MultiMetaLogical. Fix BL typesystem to accomodate these changes.
ListRole in DataForms is stricter and doesn't allow non-list values.
Spliced MultiMetaLogical is always generated to ListNode without intermediate step of Variable[].
2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 4938551fcb Subst ListNode for 'term' type in some places in relation concerned with LUB. Change ListRole to ChildRole in upperBoundType & lowerBoundType. 2019-09-11 13:24:01 +03:00
Grigorii Kirgizov 6255bdb6f5 Add relations required for recursive case of LUB 2019-09-11 13:24:01 +03:00