From 9d3b7e1fba896f04c766fb933368fcda10e1ed4f Mon Sep 17 00:00:00 2001 From: Grigorii Kirgizov Date: Tue, 27 Oct 2020 12:15:39 +0300 Subject: [PATCH] Add program Preamble as SessionToken, use it in Queries strategy Program Preamble consists of 2 parts: rules & Journal. Preamble rules are no-input rules with rules for their required nodes. Preamble journal is journal part with results of executing these rules. Preamble is defined per-Query, because Journal differs for Queries. Repository CacheHolder is used for storing them b/w sessions. Rules are stored and retrievied with Memoizer. Journal is stored as SessionToken in PreambleSet (map Query->SessionToken). Add option to IncrementalSpec -- incrementality level (Preamble or Full). --- .../jetbrains.mps.lang.coderules.eval.mps | 1 + ...ns.mps.lang.coderules.program.analysis.mps | 112 +++ .../jetbrains.mps.lang.coderules.program.mps | 783 +++++++++++++++--- ...ins.mps.coderules.typechecking.service.mps | 700 +++++++++++++--- 4 files changed, 1381 insertions(+), 215 deletions(-) diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps index cceca289..cc812b15 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps @@ -4624,6 +4624,7 @@ + diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps index 6c7b0aa7..c96016f1 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps @@ -263,6 +263,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -333,6 +365,9 @@ + + + @@ -456,6 +491,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -536,6 +594,17 @@ + + + + + + + + + + + @@ -561,6 +630,12 @@ + + + + + + @@ -599,6 +674,19 @@ + + + + + + + + + + + + + @@ -802,6 +890,23 @@ + + + + + + + + + + + + + + + + + @@ -827,6 +932,13 @@ + + + + + + + diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps index 2a63640c..f42c2b90 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.mps @@ -564,6 +564,25 @@ + + + + + + + + + + + + + + + + + + + @@ -596,6 +615,24 @@ + + + + + + + + + + + + + + + + + + @@ -970,6 +1007,13 @@ + + + + + + + @@ -2458,8 +2502,8 @@ - + @@ -5269,6 +5313,20 @@ + + + + + + + + + + + + + + @@ -5507,6 +5565,15 @@ + + + + + + + + + @@ -5558,6 +5625,9 @@ + + + @@ -5623,18 +5693,99 @@ - + + + + - - + + + + + + + - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5658,6 +5809,9 @@ + + + @@ -5903,14 +6057,13 @@ - - - - - + + + + - - + + @@ -5918,7 +6071,6 @@ - @@ -5948,19 +6100,24 @@ - - - - - - - + + + + + + + + + + + + @@ -5969,17 +6126,6 @@ - - - - - - - - - - - @@ -5994,27 +6140,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -6025,19 +6150,14 @@ - - - - - - - - + + + - - + + @@ -6068,8 +6188,11 @@ - + + + + @@ -6102,8 +6225,8 @@ - - + + @@ -6137,8 +6260,8 @@ - - + + @@ -6163,6 +6286,22 @@ + + + + + + + + + + + + + + + + @@ -6836,33 +6975,16 @@ - - - + + + - - - - - - - - - - - - - - - - - @@ -6918,31 +7040,45 @@ - - - + + + - - - - + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7581,8 +7717,8 @@ - - + + @@ -7625,20 +7761,20 @@ - - - + + + + + + - - + + - - - @@ -7673,6 +7809,10 @@ + + + + @@ -8231,6 +8371,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8321,6 +8512,9 @@ + + + @@ -8602,7 +8796,11 @@ - + + + + + @@ -10116,6 +10314,17 @@ + + + + + + + + + + + @@ -10799,6 +11008,9 @@ + + + @@ -11040,7 +11252,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11737,6 +11977,17 @@ + + + + + + + + + + + @@ -14452,5 +14703,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps b/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps index dbfc29d8..40839fe9 100644 --- a/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps +++ b/coderules/solutions/jetbrains.mps.coderules.typechecking/models/jetbrains.mps.coderules.typechecking.service.mps @@ -5967,6 +5967,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8183,6 +8210,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8207,15 +8274,11 @@ - - - - - - - - - + + + + + @@ -8238,16 +8301,8 @@ - - - - - - - - - - + + @@ -8344,6 +8399,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8373,18 +8471,11 @@ - - - - - - - - - - - - + + + + + @@ -8422,16 +8513,8 @@ - - - - - - - - - - + + @@ -8935,6 +9018,12 @@ + + + + + + @@ -9013,13 +9102,8 @@ - - - - - - - + + @@ -9048,6 +9132,12 @@ + + + + + + @@ -9099,13 +9189,8 @@ - - - - - - - + + @@ -15466,6 +15551,12 @@ + + + + + + @@ -15488,6 +15579,19 @@ + + + + + + + + + + + + + @@ -15606,7 +15710,363 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15628,6 +16088,13 @@ + + + + + + + @@ -16363,25 +16830,48 @@ + + + + + + + + + + + + + + - - + + - + - - - - - - + + + - - - - + + + + + + + + + + + + + + + + @@ -16398,7 +16888,7 @@ - + @@ -16452,11 +16942,8 @@ - - - - - + + @@ -16658,7 +17145,6 @@ - @@ -17009,25 +17495,48 @@ - - - + + + + + + + + + + + + + + + + + - + - - - - - - + + + - - - - + + + + + + + + + + + + + + + + @@ -17042,8 +17551,8 @@ - - + + @@ -17097,11 +17606,8 @@ - - - - - + +