Commit Graph

577 Commits

Author SHA1 Message Date
Fedor Isakov 3cf666e633 Apply migrations and make project 2023-07-31 12:57:24 +02:00
Fedor Isakov e5538bc39f A bunch of refactorings and cleanups in trace view
- cleanup the code, rename symbols for better readability
 - drop dead code
 - support for optionally showing empty template trace nodes
 - display node path for source nodes
2023-06-21 15:27:05 +02:00
Fedor Isakov 0e2c64e587 Fix resolve info 2023-06-12 12:20:35 +02:00
Fedor Isakov 6a849f82f2 Apply migrations and rebuild project 2023-06-12 12:01:02 +02:00
Fedor Isakov 11a1037860 Minor refactoring and code cleanup 2023-06-12 12:01:02 +02:00
Fedor Isakov 6150702e92 Drop references to template dropped upstream 2023-05-03 10:50:10 +02:00
Fedor Isakov 08733317ef Null guard. MPSCR-126 2023-02-23 17:29:02 +01:00
Fedor Isakov d531c6a5ad Run Migration Assistant 2023-02-22 13:52:02 +01:00
Fedor Isakov ad3ea9d63d Apply all migrations from 2022.2 2022-11-21 11:25:13 +01:00
Fedor Isakov 8f42a025bc Rewrite topo sorting of macro tables 2022-09-08 14:07:06 +02:00
Fedor Isakov 6030332107 Introduce profiling into program produce/evaluation steps 2022-09-02 15:49:30 +02:00
Fedor Isakov bb47403b0c Fix generating of synth recover terms table 2022-08-22 11:19:59 +02:00
Fedor Isakov 26a3bd12dd Fix how output models are searched for checkpoints 2022-08-16 18:11:49 +02:00
Fedor Isakov 40dd4bb31a Avoid dependency on a non-runtime solution 2022-07-28 10:30:38 +02:00
Fedor Isakov 83daafe180 Fix feature reference constraint 2022-07-28 10:30:38 +02:00
Fedor Isakov f9eb52a60f Introduce checkpoint for typechecking "strut" templates
The templates that typechecking relies upon are generated
into the user model as synthetic constructs. These later
need to be discovered by the generator to establish
correct references.
2022-07-28 10:30:38 +02:00
Fedor Isakov 33b472f560 Switch to using plain FQN strings to identify templates
SNodeReference are too unreliable to be used.
2022-07-28 10:30:38 +02:00
Fedor Isakov 4bd681f3ee Fix support for require/requireAll statements in queries, MPSCR-108 2022-07-15 19:46:32 +02:00
Fedor Isakov 837f7303a8 Fix test language broken after refactoring 2022-06-18 15:56:54 +02:00
Fedor Isakov 186c7b6a28 Fix auto-recovery of types with expect/assign/recover pseudo-constraints 2022-06-18 12:53:14 +02:00
Fedor Isakov dd0b9b2842 Intention to convert term table to types term table 2022-06-18 12:53:14 +02:00
Fedor Isakov 77eb3f30c7 Implement a missing BH method 2022-06-13 11:11:57 +02:00
Fedor Isakov b46373701f WIP Reorganizing code 2022-06-08 10:23:43 +02:00
Fedor Isakov 88aaf7898c Ensure only relevant aspects selected for certain queries
While check/checkTypeOf queries are required to
process a whole root, other types of queries
can be sensitive to what aspects to include in
the processing.

Aspects are sorted in strongly-connected components,
among which the relevant one is selected.
2022-06-06 13:00:52 +02:00
Fedor Isakov 585f8f57f5 Switch to generating FQ names for constraint symbols 2022-05-26 12:52:25 +02:00
Fedor Isakov c112a59116 Switch to collection of QueryTemplate instead of single instance
The deisgn decision to have only one instance of QueryTemplate
leads to the necessity to keep AspectClique separated for
every "typesystem". Whereas QueryTemplate are really perfectly
composable, and thus only one AspectClique is neeeded.

Also drop a rudimentary unused feature.
2022-05-26 09:58:31 +02:00
Fedor Isakov 874a2a4b4e Ensure rule tags have unique group name 2022-05-25 13:49:11 +02:00
Fedor Isakov b6c190c35c Introduce ruleInput parameter to call macro
Accessing the rule input allows to track dependencies
necessary for correctly updating the feedback.
2022-05-09 17:02:12 +02:00
Fedor Isakov ddce418ba4 Ensure new list is initialized when recovering 2022-05-03 10:26:43 +02:00
Fedor Isakov bd249c5d0c Drop obsolete feature: incremental specification 2022-04-21 16:05:31 +02:00
Fedor Isakov 1d54b8ffeb Fix NPE on first update of empty rules query 2022-02-17 17:05:41 +01:00
Fedor Isakov 98fef4c95d Fix NPE on newRules array being empty 2022-02-15 10:35:53 +01:00
Fedor Isakov d8a180bfe2 Test list feature recovery 2022-02-08 10:09:40 +01:00
Fedor Isakov 2f34591b0b Support list feature in recovery 2022-02-08 10:09:40 +01:00
Fedor Isakov 2e5d73b31e Add icons for typechecking roots and the aspect 2021-11-25 18:09:22 +01:00
Fedor Isakov d7f54a35fb Minor editor fixes 2021-11-25 12:07:43 +01:00
Fedor Isakov 2d48fb57f2 Fix editor: ensure correct constraints in head/guard/body 2021-11-25 12:07:43 +01:00
Fedor Isakov c27cafdf30 Fix editor: support changing isFree <-> isNonfree 2021-11-24 16:22:17 +01:00
Fedor Isakov 4e70300ea7 Update language imports 2021-11-24 16:22:17 +01:00
Fedor Isakov d0d44b98c5 Minor editor fixes 2021-11-24 16:22:17 +01:00
Fedor Isakov 690e8e919c Fix editor: caret position and first argument to constraint 2021-11-24 16:22:17 +01:00
Fedor Isakov 9b59925e4f Fix editor: editable=false for keywords, focus attraction 2021-11-24 16:22:17 +01:00
Fedor Isakov c5f2902cd6 Drop background color from backquote 2021-11-16 12:04:32 +01:00
Fedor Isakov 9b8946ce67 Support recovering of children features in typechecking term table 2021-11-15 13:00:03 +01:00
Fedor Isakov 8f4dd4a1c1 Fix the order of synthetic recover rules 2021-11-12 13:25:47 +01:00
Fedor Isakov 365883a099 Fix broken representation of terms with specification 2021-10-27 12:03:49 +02:00
Fedor Isakov cf04a60cc9 Minor improvements in displaying terms and activation trace 2021-10-26 17:46:41 +02:00
Fedor Isakov 257bc196c3 Re-save all models 2021-10-26 17:46:40 +02:00
Fedor Isakov 8dbf94c7da Fix broken withParam() invocation of query template 2021-10-14 18:28:43 +02:00
Fedor Isakov f3c12ec4af Fix missing dependency 2021-09-23 15:16:17 +02:00
Fedor Isakov 2d52921561 Fix and optimize dependencies 2021-09-22 17:08:25 +02:00
Fedor Isakov 177e55820e Move label definition to the language that uses it 2021-09-22 17:08:25 +02:00
Fedor Isakov 0840e5ecfb Replace quotation with "node builder" to satisfy generator 2021-09-22 17:08:25 +02:00
Fedor Isakov 17c2c73aeb Minor code cleanup 2021-09-22 17:08:25 +02:00
Fedor Isakov ae2492ab57 Update types aspect of the test language 2021-09-21 17:54:51 +02:00
Fedor Isakov ac89cbb3b6 New features in typechecking lang to facilitate working with types
Introduce TypeTermTable as an alternative to TermTable dedicated to
types. A "type term" declaration has a type builder: an expression
which creates the corresponding SNode.
To access term's features on can use FeatureReferenceExpression.

The new _ExpectType_ _RecoverType_ rule tables are automatically added
to the user's 'types' aspect and serve to extract types from types.

AssignType and RecoverType pseudo-constraints can be used to
extract/assign or just extract the type, correspondingly.
2021-09-21 17:54:51 +02:00
Fedor Isakov b122872890 Refactor Result to be able to clear the cause 2021-09-21 17:54:51 +02:00
Fedor Isakov 3f606ba63c Refactor the way parameters are passed to expand macro
Instead of the hack that that uses session parameters to pass
parameters to expandMacro, use directly `withParams` method
on macro token. All parameters are mapped to corresponding fields.

Introduce CustomSessionParameter to access parameters in
TemplateApplicationSession.
2021-09-21 17:54:51 +02:00
Fedor Isakov 21cbd6e926 Simplify a generator template query 2021-09-21 17:54:51 +02:00
Fedor Isakov 42d9970172 Extend ValueFeature with type, deprecate getter 2021-09-21 17:54:50 +02:00
Fedor Isakov f96211273c Drop hack for finding refs in LateParameter, switch to internal var ref 2021-08-17 09:30:49 +02:00
Fedor Isakov 5bd41f1098 Introduce typechecking term table 2021-08-17 09:30:35 +02:00
Fedor Isakov c6453b7293 Introduce hack for finding refs in LateParameter 2021-08-17 09:29:57 +02:00
Fedor Isakov 6b0526ba31 Introduce language j.m.l.types to contain aspect-related generator mappings 2021-08-17 09:29:21 +02:00
Fedor Isakov 837be3fe64 Fix reference to query classifier to be a node, initialize TypecheckingQueries 2021-08-04 13:24:59 +02:00
Fedor Isakov 4b64377ac6 Introduce dsl constructs for typechecking queries
A root TypecheckingQueries is to replace the generic Queries
from j.m.lang.coderules.
2021-07-29 12:46:57 +02:00
Fedor Isakov 4f22a7959d Fix LateExpression generator: avoid interfering with other gen templates 2021-07-29 12:46:57 +02:00
Fedor Isakov 4d06adf85b Rename isAssigned to isNonfree for consistency 2021-07-22 15:46:21 +02:00
Fedor Isakov 4ea1d0cadd Feature: isGround and isNonground predicates, MPSCR-94 2021-07-22 13:59:19 +02:00
Fedor Isakov 4e02433491 Make rule input and session variables available in rule methods 2021-07-06 13:42:41 +02:00
Fedor Isakov 2425fe933a Ensure dependency is tracked for nested expand macro applications
Expand macro passes the rule's input to nested macro calls.
This adds the macro input as the dependency of the rule's input.
As a result, incremental processing starts working in some cases.
2021-06-30 18:25:46 +02:00
Fedor Isakov f83757b69a Rollback aspect devkit for bootstrap languages 2021-06-29 18:10:21 +02:00
Fedor Isakov 17e1bc4589 Applied migration 2021-06-29 14:51:10 +02:00
Fedor Isakov c4811d7d74 Migration of types aspect
Add types aspect devkit, remove engaged in generation.
2021-06-29 14:51:10 +02:00
Fedor Isakov dd8c5ffb07 Introduce types aspect devkit and genplan 2021-06-29 14:51:10 +02:00
Fedor Isakov 9527a097b8 Migrate to the latest MPS release, apply migrations 2021-06-18 18:41:01 +02:00
Fedor Isakov e03a65760c Adjust style for fail constraint 2021-06-18 18:41:00 +02:00
Fedor Isakov c153d605e6 Auto-fix 2021-05-18 12:32:03 +02:00
Fedor Isakov 1d620cdd63 Drop obsolete unused features, cleanup the code 2021-05-18 12:32:03 +02:00
Fedor Isakov 1925ee9ef6 Auto-corrected 2021-05-13 15:54:43 +02:00
Fedor Isakov 4ee3869b45 Introduce a means to use direct reference to INamedConcept in rules 2021-05-13 15:54:42 +02:00
Fedor Isakov 338ea4109e Limit LogicalItemValueExpression to contain LogicaVariable 2021-05-04 18:24:30 +02:00
Fedor Isakov 637da7d966 Apply migration and rebuild project 2021-05-04 18:24:30 +02:00
Fedor Isakov 0a7623fa3b Migration to LogicalItem for the rest of expressions 2021-05-04 18:24:30 +02:00
Fedor Isakov ce1569f4f6 Enable DataNodeLiteral in EvaluationSetting, only for lists 2021-05-04 18:24:29 +02:00
Fedor Isakov 06083bdd30 Disable entering DataNodeExpression in EvaluationSetting 2021-05-04 18:24:29 +02:00
Fedor Isakov ea6e930954 Apply migration and rebuild project 2021-05-04 18:24:29 +02:00
Fedor Isakov a9fc3db841 Migrate to TermFeatureOverrid to LogicalItem
Deprecate TFO.getter
Disable entering LogicalItemExpression
2021-05-04 18:24:29 +02:00
Fedor Isakov abed4bd3e1 Avoid failing on an error in template application, allow recover 2021-04-28 08:54:25 +02:00
Fedor Isakov 6088ac0085 Fix displaying of logical value variables in activation trace
Unassigned variables to be displayed as X?,
assigned to print their contents..
2021-04-28 08:54:24 +02:00
Fedor Isakov cff18e7ca5 Optimize RulePlanHandler
Avoid iterating over LinkedHashMap (ineffective).
Do topo-sort only once on creating the object.
2021-04-21 10:40:51 +02:00
Fedor Isakov 394cb720c1 Optimize program producing: drop checking of constraints
Constraints arity is no longer checked.
Checking for null arguments to constraints is done
in AbstractConstraint's constructor.
2021-04-19 22:55:09 +02:00
Fedor Isakov ff6b5ec6ae Apply migrations and rebuild project 2021-04-14 13:19:50 +02:00
Fedor Isakov 93fd42365a Fix NodeWalker ignoring annotations 2021-04-13 22:57:06 +02:00
Fedor Isakov 49357ab87a Drop all usages of "principal store" and "preamble" feature 2021-04-13 22:57:06 +02:00
Fedor Isakov 077e1564b4 Refactor and optimize RulePlanHandler, drop obsolete contracts
RulePlanHandler does not rely anymore on fixed total order of
input nodes in a given rule template. An update constitutes a list
of rules/reqs generated for a pair template+input node.
All hacks that use sets of rule IDs removed.
Also, support for "new" and "dropped" rules removed, incremental algorithm
no longer supported.
2021-04-12 12:47:44 +02:00
Fedor Isakov 1d1db7cba5 Disable all preamble-related stuff 2021-04-12 12:47:44 +02:00
Fedor Isakov c37f8f82eb Minor optimization: rely on variable count when mapping terms 2021-04-12 12:47:43 +02:00
Fedor Isakov 384fc5dce8 Adapt all predicates to try-tell protocol 2021-04-08 12:41:17 +02:00
Fedor Isakov 28dd6c7a12 Implement feedback invalidation based on (in)validated rules
Refactor supervisor/feedback consumer to support feedback basis.
Track (in)validated rules tags in RulePlanHandler.
Both (in)- and validated rules cause associated feedback to be cleared.

Disable passing SessionToken in WatchingIncremental strategy;
this forces the correct journal recording but turns off incrementality.
2021-04-08 08:51:40 +02:00