Commit Graph

1960 Commits

Author SHA1 Message Date
Fedor Isakov 3fb8df4af4 Fix CheckProjectModules test. Drop usages of deprecated API. 2019-10-19 11:03:30 +02:00
Fedor Isakov fc4ff2875c Implement more fine-grained Config reset: drop all levels >= given. 2019-10-19 10:22:17 +02:00
Fedor Isakov 44d9d9e6b2 Avoid processing empty aspect clique. 2019-10-19 09:54:15 +02:00
Fedor Isakov 7705e911c5 Avoid failure on missing effect value. 2019-10-18 21:18:00 +02:00
Fedor Isakov d8243a5bf4 Fix the typechecking cache: avoid clearing all type assignments, ensure incremental update. 2019-10-18 18:22:07 +02:00
Fedor Isakov 51cc3a7afc Simplify working with SessionToken, drop a supefluous step. 2019-10-18 18:22:07 +02:00
Fedor Isakov 1e5c83dd93 Avoid failing with NPE if a project pref component is not available. 2019-10-18 17:03:56 +02:00
Fedor Isakov 2c514f08fd Fix Config initialization from tests. Replace init/deinit with single reset method. 2019-10-18 17:03:18 +02:00
Fedor Isakov 94dae1c5a8 Fix buildscript for samples/mpscore (extract dependency). 2019-10-18 17:02:14 +02:00
Fedor Isakov 6c63cb409f Introduce Config component. Make typechecker pref page nicer. Consolidate all typechecking options.
A reusable Config app component to be responsible for all level of configurations: default/system/user/ui.
Swith to Config interface instead of map<string,Object> for options.
Add an UI option to control whether trace is enabled.
2019-10-18 11:58:51 +02:00
Grigorii Kirgizov 7fb8ebd7c2 Fix one assert in incremental tests to correctly check nodes with type errors. Fixes last failing test. 2019-10-17 13:17:16 +03:00
Grigorii Kirgizov ef93acd34a Revert "Temporarily silence the last failing BL incrementality test"
This reverts commit 5aa7585b
2019-10-17 12:58:37 +03:00
Grigorii Kirgizov d861fd5eb4 Add convertsTo_ground reflexive case.
At least convertsTo(stringType(), stringType()) was failing without it.
2019-10-17 12:33:17 +03:00
Fedor Isakov 3357525958 Document Operations of Reactor. 2019-10-16 13:31:22 +02:00
Grigorii Kirgizov 5aa7585bea Temporarily silence the last failing BL incrementality test 2019-10-15 21:31:29 +03:00
Grigorii Kirgizov 439599d726 Fix Analyses test (fix recover constraint signature) 2019-10-15 21:30:00 +03:00
Grigorii Kirgizov 0fdc2ada2a Rewrite BL Recover base rules to make dependencies between rules visible (i.e. to actually reeval 'eval' predicates in rules incrementally) 2019-10-15 21:29:07 +03:00
Grigorii Kirgizov a095b2e222 Provide better (hopefully) name & explanation, undeprecate and provide missing impl for 'forgetSeen' method 2019-10-15 21:17:24 +03:00
Grigorii Kirgizov bc06bf39cc Handle one more case of finding principal constraints in Query rules with an additional heuristic. 2019-10-15 21:15:38 +03:00
Grigorii Kirgizov 28a82fd443 Revert "Temporarily disable failing tests in BLIncrTypecheck test case."
This reverts commit 1c1ddd6e
2019-10-15 18:01:21 +03:00
Fedor Isakov 6372f5a4a4 Experimental: cache the results of convertsTo/coerceTo queries.
The cache is repository-local and is invalidated on every command in that repository.
2019-10-12 09:35:09 +02:00
Fedor Isakov 0b037d9702 Code cleanup: remove unused effect values, ensure Reporting.assignType() throws an UOE.
Reporting interface is to be phased out.
2019-10-12 09:35:09 +02:00
Fedor Isakov c7ad048a9e Completing the BL typesystem: rules for Minus- and ParethesizedExpression. 2019-10-12 09:35:09 +02:00
Fedor Isakov 54c9ff4698 Switch "show type" action's implementation to use TypecheckingService.
Tried also to register TypesModule with the repository, in vain.
2019-10-12 09:35:09 +02:00
Fedor Isakov 06076860ed Deprecate SNodeSetType operation in typechecking lang. This lang exists now only for the sake of "types" aspect. 2019-10-12 09:35:09 +02:00
Fedor Isakov 1c1ddd6e5d Temporarily disable failing tests in BLIncrTypecheck test case.
Tests started to fail after an argument was introduced to a constraint that is being
activated from a query -- recoverAll/1 now has a parameter.
2019-10-12 09:35:09 +02:00
Fedor Isakov 5258a9343f Switch to collecting types during typechecking using the explicit type collector.
Use the parameter to typechecking query TYPECHECK to collect types.
Stop highlighting every expression with its type.
2019-10-10 17:30:11 +02:00
Fedor Isakov f8dcf127db Extend typechecking query TYPECHECK with a parameter to report types.
Reporting of calculated types is to be more explicit.
The not-so-obvious _type_.set() operation is to be phased out.
2019-10-10 17:30:11 +02:00
Fedor Isakov be81c982f1 Housekeeping in BL typesystem: organize artifacts using virtual folders. 2019-10-09 13:45:20 +02:00
Fedor Isakov 3d7f8688f5 Add new sample for testing typechecking performance. 2019-10-08 13:30:16 +02:00
Fedor Isakov 17f5bd64b0 Optimize Dispatcher: ensure allMatches are calculated lazily on request. 2019-10-08 13:20:40 +02:00
Fedor Isakov 445108da74 Fix RuleIndex returning too many matches for a constraint w/wildcard arg. 2019-10-08 13:16:56 +02:00
Fedor Isakov 8e4daab3c7 Stop using IMakeService.INSTANCE. 2019-10-07 11:27:32 +02:00
Fedor Isakov 37859163ca Update TC status widgets. 2019-10-07 11:13:28 +02:00
Fedor Isakov 9914c3ba19 Add all descendants of classifier type as required. 2019-10-03 10:25:25 +02:00
Fedor Isakov b283f657cf Fix a nasty bug in logical context.
A meta logical within a pattern was not properly initialized before the rule body is processed.
2019-10-02 13:54:11 +02:00
Fedor Isakov e69909f3be Some more optimizations in Rete rule matcher. 2019-10-01 16:25:12 +02:00
Fedor Isakov 64a4be471f Optimize typechecking of array literals. The errors are now reported on the literal itself.
In general one should avoid using `typeOf/2` constraint with first argument being a logical.
The indexing mechanism ensures efficient search of matching rules when at least one argument
is a constant value. However, when all arguments are free logicals, *all* matches should be
tested, which is highly ineffective.
2019-09-30 16:44:36 +02:00
Fedor Isakov 7210fd2cad Drop checking for unique varname in BL typesystem. 2019-09-30 16:44:36 +02:00
Fedor Isakov 50c0130138 Fix memory leak: leaked through toolbar actions. 2019-09-30 16:44:36 +02:00
Fedor Isakov a0405839b3 Necessary plumbing for rules segmentation. Off for now.
Turns out this feature actuall worsens the performance.
2019-09-30 16:44:36 +02:00
Fedor Isakov 49518e0704 Switch to reactor version 0.9.14. 2019-09-30 16:44:36 +02:00
Fedor Isakov 31c95cd069 Bump up reactor version to 0.9.14. 2019-09-30 16:31:59 +02:00
Fedor Isakov c7b07f3b1a Adapt to the new persistent collections API. 2019-09-30 16:31:59 +02:00
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